任意输入一段字符,然后再输入要查找的单个字符货字符串,如果在输入语句中出现 则显示这段话 所有这个字的位置 如果没有则为没有找到 然后继续输入;比如说这样一段话 我是中国人,我是一个好人,我是一个优秀的人。输入“是”它出现的位置是 1 7 14。 有谁能提供一段完整代码 谢谢!
java 一道题
- 提问者网友:人生佛魔见
- 2021-07-20 12:07
- 五星知识达人网友:摆渡翁
- 2021-07-20 13:40
System.out.println("请输入字符串:");
Scanner scan=new Scanner(System.in);
String string=scan.nextLine();
System.out.println("请输入检索字符或字符串:");
scan=new Scanner(System.in);
String str=scan.nextLine();
String po="";
for(i=0;i<string.length()-str.length();i+=str.length()){
if(string.substring(i, i+1).equals(str)){
po+=i+" ";
}
}
System.out.println("出现位置 " +po);
满足你的要求。运行结果:
请输入字符串:
我是1好人,我是大好人,我是中国人,我就是好人
请输入字符或字符串:
是
出现位置 1 7 13 20
- 1楼网友:胯下狙击手
- 2021-07-20 15:17
private static boolean findAndOutput(Stirng str1,String key){
int i = -1;
boolean found = false;;
while((i = str1.indexOf(key, i +1)) >=0){// 这个地方有待优化,比如说,key是aa,str1是aaaaaaaa,那么应该输出0 1 2 3 4 5..还是0 2 4...
System.out.print(i + " ");
found = true;
}
return found;
}
public static void main(String [] args){
//需要import java.io.*;
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println(“输入任意一段字符:");
String str = br.readLine();
while(true){
System.out.println("输入要查找的关键词");
String key = br.readLine();
if(!findAndOutput(str, key)){
System.out.println("没找到:" + key);
} else {
break;
}
} }catch(Exception e){
e.printStackTrace();
}
}
新建一个class把这些代码放进去,应该就可以了
- 2楼网友:孤独的牧羊人
- 2021-07-20 14:39
用一个判断语句吧!定一几个数组,分别给付上你所要表达的语句!在用循环判断输出你所想要的东西