我有以下代码,请记住我刚刚开始学习一门语言,并且一直在寻找相当简单的练习。欢迎编码礼仪和批评。
import java.util.*;
import java.io.*;
public class Tron
{
public static void main(String[] args) throws Exception
{
int x,z,y = 0;
File Tron= new File("C:\\Java\\wordtest.txt");
Scanner word = new Scanner(Tron);
HashMap<String, Integer> Collection = new HashMap<String, Integer>();
//noticed that hasNextLine and hasNext both work.....why one over the other?
while (word.hasNext())
{
String s = word.next();
Collection.get(s);
if (Collection.containsKey(s))
{
Integer n = Collection.get(s);
n = n+1;
Collection.put(s,n);
//why does n++ and n+1 give you different results
}else
{
Collection.put(s,1);
}
}
System.out.println(Collection);
}
}
如果不使用,useDelimiter()
我会根据我拥有的文件获得所需的输出:
Far = 2, ran = 4, Frog = 2, Far = 7, fast = 1, etc...
插入useDelimiter
方法如下
Scanner word = new Scanner(Bible);
word.useDelimiter("\\p{Punct} \\p{Space}");
提供以下输出,如下所示的文本文件中所示。
的
青蛙青蛙
跑了
跑跑跑
快,快,快
很远很远很远很远很远很远
useDelimiter
如果应该考虑标点符号新行等,为什么输出会有这样的差异?可能很简单,但又是第一次尝试一个程序。提前感谢您的任何建议。