[英]How to count certain characters in a text file using loops
I need help on a project that counts all of the vowels in the Ulysses text, by James Joyce. 我需要詹姆斯·乔伊斯(James Joyce)进行的有关计算尤利西斯(Ulysses)文字中所有元音的项目的帮助。 I am not sure how to make the program read the text file that I have inserted in the root folder of the project.
我不确定如何使程序读取在项目的根文件夹中插入的文本文件。 I'm also not sure how to make a loop that will count all of the vowels.
我也不确定如何制作一个循环来计算所有元音。 This is what I have so far.
这就是我到目前为止所拥有的。
public static void main(String[] args) throws FileNotFoundException {
System.out.println("Vowel counts in Ulysses by James Joyce:");
int a = 0;
int e = 0;
int i = 0;
int o = 0;
int u = 0;
System.out.println("a = " + a);
System.out.println("e = " + e);
System.out.println("i = " + i);
System.out.println("o = " + o);
System.out.println("u = " + u);
FileReader reader = new FileReader("ulysses.txt");
Scanner input = new Scanner(reader);
while (input.hasNextLine()) {
String line = input.nextLine();
}
}}
The output should look something like this (with all the numbers right justified): 输出应如下所示(所有数字均正确):
Vowel counts in Ulysses by James Joyce:
a = 94126
e = 143276
i = 82512
o = 92743
u = 33786
I had to do this once, and I think it was something similar to this. 我不得不这样做一次,我认为这与此类似。
while (input.hasNextLine()) {
String line = input.nextLine();
//toUpperCase() normalizes all the letters so you don't have to count upper and lower
line.toUpperCase();
char[] c = line.toCharArray();
for (int j = 0; j < c.length(); j++)
switch(c[i])
{
case "A";
a++;
case "E";
e++;
case "I";
i++;
case "O";
o++;
case "U";
u++;
}
}
import java.util.Scanner; import java.util.Scanner;
public class Smashcode { 公共类Smashcode {
public static void main(String[] args) throws Exception {
// Create a File instance
java.io.File file = new java.io.File("samplefile.txt");
// Create a Scanner for the file
Scanner input = new Scanner(file);
// Create the Content String
String fileContent = "";
// Read data from a file
while (input.hasNext()) {
fileContent += input.next() + " ";
}
// Close the file
input.close();
//Split the string into a character array
char[] charArr = fileContent.toCharArray();
//loop through every character to find the vowels
int counter = 0;
for(char c : charArr)
{
if(c == 'a')
counter_a++;
if(c == 'e')
counter_b++;
if(c == 'i')
counter_i++;
if(c == 'o')
counter_o++;
if(c == 'u')
counter_u++;
}
//number of vowels
System.out.println("Number of Vowels: " + (counter_a+counter_e+counter_o+counter_i+counter_u));
System.out.println(counter_a);
System.out.println(counter_e);
System.out.println(counter_i);
System.out.println(counter_o);
System.out.println(counter_u);
}}
Hope you like my work.Happy coding 希望你喜欢我的工作。快乐编码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.