Java使用嵌套循环查找另一个字符串中字符串的出现次数

时间:2014-09-15 01:06:25

标签: java arrays loops

所以我是编程新手。我正在使用java。现在我有一个我无法在教授java的网站上解决的任务。

这是作业

编写一个程序,返回另一个字符串中出现的字符串数。

E.g

输入:

第一个字符串:

第二串:孩子们正在玩他们的玩具,因为他们喜欢它。

输出:

3

注意:您应该只使用嵌套循环。不要使用indexOf或substring等方法。

public static void main(String[] args) {

Scanner input = new Scanner (System.in);
String a = input.nextLine();
String b = input.nextLine();
String z[]  = b.split(" ");
int number=0;
for (int i =0; i<z.length; i++){

if (z[i].contains(a))number++;  


}
System.out.println(number);

2 个答案:

答案 0 :(得分:0)

我不会给你太多的代码,但这里有主要的讨论要点:

  • 您需要一种方法来读取输入。这可以通过Scanner完成 - 它可以来自STDIN或文件。
  • 你需要一种方法来分解句子中的每个单词。 String#split会帮助您。
  • 你需要一种方法来忽略每个句子的大小写 - toLowerCase()在这里运作良好。
  • 您需要在一个句子中循环每个单词,以及在另一个句子中每次出现。考虑String.split生成String[],您可以使用任何标准for循环对其进行迭代。
  • 您需要一种方法来查看字符串是否包含在另一个字符串中。 String#contains会有所帮助 - 尽管你想要非常小心,你要问哪一方包含一个字符串。例如:

    // This will print true
    System.out.println("The world".toLowerCase().contains("the"));
    // This will print false
    System.out.println("the".contains("The world".toLowerCase()));
    

答案 1 :(得分:0)

试试这个:

import java.util.Scanner;

public class Occurence {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        String str1 = input.nextLine();
        String str2 = input.nextLine();
        int count = 0;
        String word[] = str1.split(" ");

        for (int i = 0; i < word.length; i++) {

            if (word[i].toLowerCase().contains(str2.toLowerCase())) {
                count++;
            }
        }
        System.out.println("Occurence = " + count);
    }

}