我想计算次数""显示在我根据用户输入创建的标记数组中,并将其存储在名为" theCount"的变量中。我用for循环迭代数组并检查"""用if语句。
我不允许使用正则表达式。
这是我到目前为止所做的:
import java.util.*;
public class theCount
{
public static void main (String[] args)
{
Scanner userInput = new Scanner(System.in);
System.out.print("Enter a sentence: ");
String sentence = userInput.nextLine();
String[] input = sentence.split(" the");
int theCount = 0;
for (String token : input) {
if (token == "the")
theCount++;
System.out.print("\n" + theCount); //I want it printed after
//iteration.
}
}
}
答案 0 :(得分:1)
有几个问题:
split(" the")
使用" the"
作为分隔符并提供其余字词。最好是使用空格分割。token.equals("the")
代替==
。答案 1 :(得分:0)
如果要计算出现次数,请使用此示例代码:
import java.util.*;
public class theCount {
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
System.out.print("Enter a sentence: ");
String sentence = userInput.nextLine();
int theCount = sentence.length() - sentence.replace("the", "").length();
System.out.print("Number of occurrence: " + theCount);
}
}
答案 2 :(得分:0)
您可以将输入添加到arraylist,然后可以使用它。
一种方法是从频率方法中获取计数。
List<String> arrayList = new ArrayList<String>();
arrayList.add("String"); //add all the words.
Collections.frequency(arrayList, "the");
第二种方法是从地图中获取计数。
Map<String, Integer> map = new HashMap<String, Integer>();
for(String s : arrayList){
Integer count = map.get(s);
map.put(s, count==null?1:count+1);
}
//the below will give you the count of any word.
map.get("the");
答案 3 :(得分:0)
从Java 8开始,你可以stream
api来解决这个问题。这将更简洁。以下面的代码为例
public static void main(String[] args) {
String str = "The is the for THE and the the the the The The";
long count = Stream.of(str.split(" "))
.filter(i -> i.equalsIgnoreCase("the"))
.count();
System.out.println(count);
}
===更新===
public static void main(String[] args) {
String str = " there these theology";
long count = Stream.of(str.split(" "))
.map(String ::toLowerCase)
.filter(i -> i.contains("the"))
.count();
System.out.println(count);
}
===更新===
即使字符串中有多个相同的子字符串,此解决方案也能正常工作。
public static void main(String[] args) {
String str = " thesethefajfskfjthetheasdfjasdkfjthe";
String findStr = "the";
int count = 0;
for (String s : str.split(" ")) {
count += s.toLowerCase()
.split(findStr, -1).length - 1 ;
}
System.out.println(count);
}
This SO帖子将帮助您了解如何在单个字符串中查找所有子字符串。