2016-02-22 3 views
1

Мне нужна помощь по проекту, который учитывает все гласные текста Улисса Джеймсом Джойсом. Я не уверен, как заставить программу читать текстовый файл, который я вставил в корневую папку проекта. Я также не уверен, как сделать цикл, который будет считать все гласные. Это то, что у меня есть до сих пор.Как подсчитать определенные символы в текстовом файле с помощью петель

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(); 
     } 


    }} 

Вывод должен выглядеть примерно так (со всеми номерами прямо оправданных):

Vowel counts in Ulysses by James Joyce: 
a = 94126 
e = 143276 
i = 82512 
o = 92743 
u = 33786 
+1

Первые вещи первых: не используйте 'FileReader'. Это 2015 год, используйте 'Paths.get()' и 'Files.newBufferedReader()'. – fge

+2

Это может ответить на ваш вопрос: http://stackoverflow.com/questions/19163876/count-letters-in-a-string-java – JeredM

ответ

0

Я должен был сделать это один раз, и я думаю, что это было что-то похожее на это.

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++; 

     } 


    } 
0

импорт java.util.Scanner;

общественного класса 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); 

    }} 

Надеюсь, вам понравится мой work.Happy кодирования

+0

С помощью этого кода все значения имеют вывод 0. – Jordon

+0

проверьте файл, если его чтение или убедитесь, что вы сохранили файл пути правильно – SmashCode

Смежные вопросы