我碰巧修改了主题“ Reading a text file then performing a character count and printing the relative frequency of each one ”中的源代码。 我改变它的方式也会计算非字母字符(参见下面的源代码)......
import java.io.*;
public class letterfrequency {
public static void main (String [] args) throws IOException {
File file1 = new File ("letternumberfrequency.txt");
BufferedReader in = new BufferedReader (new FileReader (file1));
int nextChar;
int other = 0;
char ch;
int [] count = new int [26];
while ((nextChar = in.read())!= -1) {
ch = ((char)nextChar);
ch = Character.toLowerCase (ch);
if (ch >= 'a' && ch <= 'z')
count [ch- 'a']++;
else
other ++;
}
for (int i=0; i<26; i++){
System.out.printf ("%c = %d \n", i+ 'A', count [i]);
}
System.out.println ("Non-alphabetic characters: " + other);
in.close ();
}
}
但是,我们只是说现在我在文本文件中有以下字符,“letternumberfrequency.txt”:
71只鹅 - 83辆汽车 - 58头奶牛 - 64头驼鹿 - 100头蚂蚁 - 69个手镯 - 90毫升 - 87头鼻子
该文本文件中的数字将被视为字符串,对吗? 但我想提取数字,这样我也可以计算它们的频率 - 不是单个数字而是整数(即多少“71”,“83”,“58”,“64”等。在那儿...)。 使用“Double.parseDouble()”会有帮助吗?
答案 0 :(得分:0)
使用“Double.parseDouble()”会有帮助吗?
不,它不会。
您首先要在"-"
字符串上拆分文件,然后在" "
字符串上再次拆分找到的标记,修剪结果并使用Integer.parseInt(...)
,因为数字字符串肯定代表整数,而不是双打。