我尝试使用 for 循环来检测给定输入“Gil,Noa,Guy,Ari”中的逗号,然后列出逗号在字符串中的位置。
import java.util.Scanner;
public class FindCommas {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String delimitedData;
int i;
int freqOccurred = 0;
delimitedData = scnr.nextLine();
for (i = 0; i < delimitedData.length(); ++i) {
if (Character.isLetter(delimitedData.charAt(i))) {
System.out.println("Comma found at index " + i);
}
}
for(String subString: delimitedData.split(",")){
freqOccurred = freqOccurred + 1;
}
freqOccurred = freqOccurred - 1;
System.out.println("Comma occurs " + freqOccurred + " times");
}
}
当前产生的输出是:
在索引 0 处找到逗号
在索引 1 处找到逗号
在索引 2 处找到逗号
在索引 4 处找到逗号
在索引 5 处找到逗号
在索引 6 处找到逗号
在索引 8 处找到逗号
在索引 9 处找到逗号
在索引 10 处找到逗号
在索引 12 处找到逗号
在索引 13 处找到逗号
在索引 14 处找到逗号
逗号出现3次
问题是它跳过了逗号所在的索引位置,我不知道如何翻转它以仅产生逗号的索引而不仅仅是字母的索引。
预期输出:
在索引 3 处找到逗号
在索引 7 处找到逗号
在索引 11 处找到逗号
逗号出现3次
注意:代码不得包含数组
(抱歉帖子格式不佳)
给想要的人解答:
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String delimitedData;
int i;
int freqOccurred = 0;
delimitedData = scnr.nextLine();
for (i = 0; i < delimitedData.length(); ++i) {
if (delimitedData.charAt(i) == ',') {
System.out.println("Comma found at index " + i);
}
}
for(String subString: delimitedData.split(",")){
freqOccurred = freqOccurred + 1;
}
freqOccurred = freqOccurred - 1;
System.out.println("Comma occurs " + freqOccurred + " times");
}
}