2017-02-23 41 views
-1

Я пытаюсь взять имена из файла boyNames.txt. Это содержит 1000 имен мальчиков. для примера каждая строка выглядит в файле выглядит следующим образом:Практика ввода-вывода файлов.

  1. Деван
  2. Криса
  3. Том

Цель просто пытался прочесть в имени, но я не мог» t найти метод в пакете java.util, который позволил мне захватить только имя в файле boysName.txt.

Например, я просто хотел захватить Девана, затем следующего Криса и Тома.

НЕ «1. Деван» и «2. Крис».

Проблема hasNextLine захватывает всю строку. Я не хочу, чтобы «1.» часть.

Так что я просто хочу, чтобы Деван, Крис, Том читались или сохранялись в переменной типа String. Кто-нибудь знает как это сделать? Я пробовал HasNext(), но это не сработало.

Вот код здесь, так что вы можете получить визуальное:

import java.io.PrintWriter; 
    import java.io.FileOutputStream; 
    import java.io.FileNotFoundException; 
    import java.util.Scanner; 
    import java.io.FileInputStream; 
    public class PracticeWithTxtFiles { 
     public static void main(String[] args){ 
     PrintWriter outputStream = null; 
     Scanner inputStream = null; 
     try{ 
      outputStream = new PrintWriter(new FileOutputStream("boys.txt")); //opens up the file boys.txt 
      inputStream = new Scanner(new FileInputStream("boyNames.txt"));//opens up the file boyNames.txt 
     }catch(FileNotFoundException e){ 
      System.out.println("Problem opening/creating files"); 
      System.exit(0);  
     } 

     String names = null; 
     int ssnumbers= 0; 

     while(inputStream.hasNextLine())//problem is right here need it to just 
      // grab String representation of String, not an int    
     { 
      names = inputStream.nextLine(); 
      ssnumbers++; 
      outputStream.println(names + " " + ssnumbers); 
     } 

     inputStream.close(); 
     outputStream.close(); 
    } 
} 
+1

Прочитайте всю строку, а затем отрегулируйте бит, который вы не хотите. Разве это не очевидно? Вы надеетесь, что файловый читатель может магически интерпретировать данные в файле для вас и решить, что для вас важно? – John3136

+0

Lol, нет, я этого не делаю. Вы, кажется, не можете читать. Я знаю, что это не так. hasNextLine() читает всю строку. Мне просто интересно, есть ли метод, который просто захватит представление String строки. поэтому он будет захватывать только Струны. Как hasNextInt будет только захватывать хорошо сформированное представление int. – MoneyMonster

+0

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

ответ

0

Если вы не знаете, Проверьте эту строку API Заменим метод String - Library

вобще заменить, его так просто ,

names = names.replace(".","").replaceAll("[0-9]+","").trim() 
+0

Спасибо, что сработало отлично. – MoneyMonster

+0

Добро пожаловать, пожалуйста, отметьте как ответ, если он работает нормально. –