当前位置: 首页 > 知识库问答 >
问题:

如果一个单词出现多次,如何在字符串数组中列出该单词的两个索引?

乜烨霖
2023-03-14

我有一个程序,其中有一个名称列表,输出说明名称出现了多少次,以及单词出现在哪一行。现在,如果一个名字出现两次,它只输出第一个出现的单词的行号。如果名字出现了不止一次,我怎么能让它说出名字在哪一行呢?

class Main {
  public static void main(String[] args) {
    String nameList="Joe\nBob\nSteve\nJasper\nZack\nInayah\nKevin\nSheila\nSophie\nAdi\nJasper";
    String[] spl = nameList.split("\n");

    System.out.println(nameList);

    int position = java.util.Arrays.asList(spl).indexOf("Jasper") + 1;

    String amount = "Jasper";
    int count = 0;
    for(String word : spl) {
      if(word.equals(amount)) { 
       count++;
      }
    }
    System.out.println("The name " + amount + " Appears " + count + " Times"); 
    System.out.print("The name appears on line " + position );
    if (count>1) {
      System.out.print(" and line" /*the second line it appears on*/);
    }
  }
}

共有1个答案

农英杰
2023-03-14

下面是一个简单的解决方案,适用于每行输入一个名称。

public class Main {
  public static void main(String[] args) {
    String nameList="Joe\nBob\nSteve\nJasper\nZack\nInayah\nKevin\nSheila\nSophie\nAdi\nJasper";
    String[] spl = nameList.split("\n");
    int lineArr[];
    lineArr = new int[11];
    int line = 0;

    System.out.println(nameList);

    int position = java.util.Arrays.asList(spl).indexOf("Jasper") + 1;

    String amount = "Jasper";
    int count = 0;
    for(String word : spl) {
        line++;
      if(word.equals(amount)) { 
       lineArr[count] = line;
       count++;
      }
    }
    System.out.println("The name " + amount + " Appears " + count + " Times"); 
    System.out.print("The name appears on line " + position );
    while (count>1) {
      count--;
      System.out.print(" and line " + lineArr[count]);
    }
  }
}

数组lineArr被声明为跟踪关键字Jasper的存在。数组需要有最多值的元素行数来跟踪关键字是否出现在所有行上。您可以通过添加未硬编码的逻辑并检测用于声明数组长度的行数来进一步改进程序

在您的for(String word: sp1)循环中,我们所要做的就是跟踪我们所在的行,并在找到关键字时将其存储在lineArr数组中。

 类似资料:
  • 问题内容: 我是Java字符串的新手,问题是我想计算字符串中特定单词的出现次数。假设我的字符串是: 现在,我也不想拆分它,所以我想搜索一个“雄猫”这个词。它在我的字符串中出现了两次! 我正在尝试的是: 它给了我46个计数器的价值!那么解决方案是什么? 问题答案: 您可以使用以下代码: 演示版 它匹配。 表示在找到匹配项时执行循环内给出的任何操作。并且我将by 的值递增,因此很显然,这给出了一个字符

  • 问题内容: 如何计算一个单词出现在字符串列表中的次数? 例如: 单词“句子”的结果是2 问题答案: 使用一个对象并在空白处分割单词。您可能还希望小写单词,并删除标点符号: 或使用仅与单词字符匹配的正则表达式: 现在,您有了一本包含每个单词计数的字典。 演示:

  • 问题内容: 如果我有英文文章或英文小说,并且想计算每个单词出现多少次,用Java编写的最快算法是什么? 有人说您可以使用Map ()完成此操作,但我想知道如何知道关键字是什么?每篇文章都有不同的词,您如何知道“关键”词,然后在其数量上加上一个? 问题答案: 这个数字“我是”只是一个字

  • 如果一个单词在一个字符串中重复了很多次,我该如何计算这个单词的重复次数和它们的位置呢?

  • 问题内容: 我有一个大的文本文件正在读取,因此我需要找出几个单词出现的次数。例如,单词。我正在逐行执行此操作,每一行都是一个字符串。 我要确保我只算合法的-在中起不到作用。这意味着我知道我需要以某种方式使用正则表达式。到目前为止,我正在尝试的是: 我意识到正则表达式目前可能不正确,但我尝试过不这样做,而只是尝试查找单词的出现,并且我也得到了错误的数字。我给人的印象是,它将字符串分割成一个数组,并且

  • 当我试图计算一个单词在TXT文件中出现的次数时,我遇到了一个问题。 我创建一个textfield(txta) 我创建一个按钮来应用操作(btn) 我创建一个textarea(区域),其中显示文件的内容