【发布时间】:2017-10-23 01:06:02
【问题描述】:
我一直在尝试用 Java 创建一个程序,输出在字符串中找到的每个单词以及它们出现的次数。我一直在尝试在不使用任何数组或哈希映射的情况下执行此操作,并且仅使用字符串操作方法和字符串标记器,但我似乎无法理解逻辑。
这是我目前所拥有的。
Scanner sc=new Scanner(System.in);
String input="";
int count=1;
String word="";
System.out.println("Enter your paragraph.");
input=sc.nextLine();
StringTokenizer st=new StringTokenizer(input);
while(st.hasMoreTokens()){
word=st.nextToken();
while(st.hasMoreTokens()){
if(st.nextToken()==word){
count++;
}
}
System.out.println(word+": "+count);
input=input.replaceAll(currentToken," ")
count=1
}
我当前收到的输出是(输入的第一个单词)=0。
有什么帮助或建议可以引导我朝着正确的方向前进吗?
【问题讨论】:
-
为什么限制hashmaps?
-
Javadoc of
StringTokenizersince Java 1.4 (2002):StringTokenizer是一个遗留类,出于兼容性原因保留,尽管它的用途是在新代码中不鼓励。建议任何寻求此功能的人使用String的split方法或java.util.regex包。 --- 告诉你的老师扔掉那本15 年前的教材。是时候获取这十年的材料了。 -
@coolioasjulio 我在学校,还没有学过哈希图。我正在尝试仅使用基本的 Java 知识来解决这个问题。
-
内层
while循环结束后(因为st.hasMoreTokens()返回了false),你认为外层while循环中的st.hasMoreTokens()会返回什么? -
你为什么使用两个while循环并且还使用.equals来比较字符串而不是==
标签: java stringtokenizer