2015-05-08 2 views
2

Я пытаюсь разделить каждую строку строки, прочитанную моими FileReader и BufferedReader. Я получаю синтаксическую ошибку в String [] x = Login.Split("");Как разбить строку на массив

Какой метод я могу использовать для разделения String? Я добавлю метод, чтобы увидеть, соответствует ли строка другим вводом, но теперь мне нужно выяснить, как разбить строку и по-прежнему иметь отдельную строку.
(Я пытаюсь найти другой способ сделать логин, так как у меня есть java 8, и я не могу использовать sql и ucanaccess тоже не помог). Я также попытался использовать разделитель, но не смог найти подходящий пример ,

private void SubmitActionPerformed(java.awt.event.ActionEvent evt) {  
    try { 
     FileReader FR = new FileReader("Login.txt"); 
     BufferedReader Login = new BufferedReader(FR); 
     StringBuilder sb= new StringBuilder(); 

     String str; 
     String [] x = Login.Split(""); 
     while ((str = Login.readLine()) !=null) { 
      sb.append(str); 
      sb.append("\n"); 
     } 
     Login.close(); 
     FR.close(); 

     System.out.println(sb.toString()); 
     Scanner read = new Scanner(Login); 

     } catch (Exception ex) { 
      System.out.println("exception 2, "); 
      ex.printStackTrace(); 
     } 
    } 
+0

Что вы пытаетесь разбить? 'Login.readLine' будет читать отдельные строки с вашего ввода. Эти одиночные строки назначаются 'str'. Вы хотите разделить 'str' больше? –

+0

aw да, я думаю, что ты указываешь мне в правильном направлении. Мне нужно разделить каждую строку, а затем отсканировать массив из каждой строки, чтобы узнать, совпадает ли оно с именем пользователя и паролем. – CAPTiNDANCE

+1

Вы вызываете 'Split' на буферизованный читатель. 'Split' - это метод [' String'] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String%29), не 'BufferedReader'. –

ответ

2

Я не понимаю, что вы хотите?

A: Вы хотите поместить отдельные отдельные строки от вашего читателя в aray? Хорошо, насколько я знаю, что метод readline() уже читает строку текста.

или

B Вы хотите разделить слова в строке в этом случае вы можете попробовать использовать это:. String [] х = Login.trim() раскол ("// S"); // RegEx будет содержать более одного пробела между словами, а trim() будет вырезать пробелы в начале и конце строки, если таковые имеются.

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

Примечание. Я только начинаю с Java, но надеюсь, что это поможет.

+0

вы ударяете его прямо по голове. Я не фокусировался на правильной части проблемы. По какой-то причине мне показалось, что мне нужно сравнить два слова в одной строке, и с этой мыслью лучший способ сделать это - сделать массив и сравнить его со входом от пользователя. Когда на самом деле более простым решением является объединение двух входов вместе и сравнение их с линией файла. (теперь, чтобы понять, как это сделать, я думаю, что у меня его почти нет.) – CAPTiNDANCE

+0

Я рад, что смогу помочь :) –

+0

trim() не будет принимать пустое пространство от отдельных частей по мере их получения помещается в массив x. – marklark

1

на основе нового комментария

String str; 
while ((str = Login.readLine()) !=null) { 

    String [] x = str.Split(" "); 

    // ?? new method to scan string array 
    scanThis (x); 
    sb.append(str); 
    sb.append("\n"); 

}

void scanThis (String arr[]) 
{ 
    for (int x = ; x < arr.length; x++) { 
    { 
     if (arr[x].equals ("login")) { 
      System.out.println ("Hurray"); 
      break; 
     } 
    } 
}  
+0

Я пытаюсь проверить ваш код, но он дает мои проблемы, потому что он находится внутри ожидающего класса действий. (Я думаю, что проблема плюс несколько других.) Я недостаточно опытен, чтобы знать, как делать то, что мне нужно. – CAPTiNDANCE

+1

Каковы ваши ошибки? –

+1

Вам не нужен второй метод. Просто назовите 'arr.contains (« login »)'. – EJP

1

я получаю синтаксическую ошибку в String [] x = Login.Split("");

Нет, нет, вы являются getti ng ошибка компилятора, читающая что-то вроде «нет такого метода». Это не синтаксическая ошибка.

Login (дурацкое название) является BufferedReader и BufferedReader не имеет метод Split(). String с другой стороны . есть split() способ (примечание кейс). Предположительно, это то, что вы ищете.

Но расщепление на пустой строке не принесет ничего полезного.

+0

ваше право. Спасибо, что указал мне в правильном направлении. На самом деле я так глуп, что хочу удалить всю свою почту. Я понимаю, что могу просто сравнить всю строку так, что мой пользователь будет вводить и добавить два входа вместе, а затем сравнить всю строку. – CAPTiNDANCE

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