看到一个考题:
1. 定义一个无返回值的方法,传入一个字符串和一个字符,将该字符在字符串中出现的所有位置打印到控制台上;
2. 在main方法中调用该方法(字符串和字符需要键盘录入,用“,”隔开)。
PS:如果传入的字符串中没有该字符则输出-1即可
答案是这样的-----------------------------------------------------
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//字符串和字符需要键盘录入,用“,”隔开
Scanner scanner = new Scanner(System.in);
// 提示
System.out.println("请输入字符串和字符并用“,”隔开:");
String input = scanner.nextLine();
// 拆分字符串和字符
String[] arr = input.split(",");
String text = arr[0];
char targetChar = arr[1].charAt(0);
// 调用方法
print(text, targetChar);
}
// 将该字符在字符串中出现的所有位置打印到控制台上
public static void print(String text, char targetChar) {
// 先判断是否包含该字符
if (!text.contains("" + targetChar)) {
// 如果不包含, 则直接打印-1
System.out.println(-1);
// 并结束方法
return;
}
// 如果程序能执行到这里, 说明包含字符, 则遍历字符串
for (int i = 0; i < text.length(); i++) {
// 获取字符
char ch = text.charAt(i);
// 判断是否相等, 相等则是出现
if (ch == targetChar) {
// 打印索引
System.out.println(i);
}
}
}
}
------------------------------------------------------------------------------------------------
"str".contains("" + 'c'),原来String还可以这么使用判断是否包含某个字符。。。
在这里我写了一个小程序,供大家参考:
-----------------------------------------------------------------------
import java.util.Arrays;
import java.util.Scanner;
public class Practice5 {
public static void print(String str, char ch){
char[] chs = str.toCharArray();
int count = 0;
//如果字符串含有字符,则打印字符在字符串中所在的位置(索引+1)
//---此处有歧义,命题没有明确说明(是在字符串的索引位置上,还是在我们看到的位置上)
for(int i = 0; i < chs.length; i++) {
if(chs[i] == ch){
System.out.print((i+1) + " ");
}else {
count++;
}
}
//判断字符串是否含有字符
if(count == str.length()){
System.out.println(-1);
}
System.out.println(count);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串和一个字符 使用 ,隔开:");
String inPut = sc.nextLine();
inPut.split(",");
String str = inPut.substring(0,(inPut.length()-2));
char ch = inPut.charAt(inPut.length()-1);
print(str,ch);
}
}
|
|