如何检测字符串中的逗号并打印逗号的数量以及逗号在字符串中出现的位置

问题描述 投票:0回答:1

我尝试使用 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次

注意:代码不得包含数组

(抱歉帖子格式不佳)

java string for-loop indexing char
1个回答
0
投票

给想要的人解答:

   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");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.