2015-04-16 3 views
3

Я написал простой код, в котором я использую StringTokenizer для получения входных данных по одной строке за раз, а затем от parseInt.Как повторно использовать объект StringTokenizer

InputStreamReader in = new InputStreamReader(System.in); 
BufferedReader r = new BufferedReader(in); 

int T = Integer.parseInt(r.readLine()); 
int v; 
int e; 
int testCases; 

for(testCases = 1; testCases <= T; testCases++) 
{ 
    StringTokenizer st = new StringTokenizer(r.readLine()); 
    v = Integer.parseInt(st.nextToken()); 
    e = Integer.parseInt(st.nextToken()); 
    ArrayList<ArrayList<Integer>> graph = new ArrayList<ArrayList<Integer>>(v+1); 
} 

теперь я хочу, чтобы прочитать следующую строку, используя один и тот же объект st, но когда я пытаюсь это

st(r.readLine()); 

он выдает ошибку

«Метод не определен для основного типа "

как читать следующую строку. Я думаю, что делаю что-то принципиально неправильно. или , пожалуйста, предложите альтернативный метод. Вот вход:

5 // T 
5 6 // v & e 
1 2 // error reading this 
3 4 
5 6 
1 4 
1 3 
+0

Просто из любопытства: что вы ожидаете от 'st.()'? – SJuan76

+2

Из [документации для 'StringTokenizer'] (https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html) _'StringTokenizer' - это унаследованный класс, который сохраняется для совместимости хотя его использование не рекомендуется в новом коде. Ответ на ваш вопрос: «Не используйте его в первую очередь». –

+0

@ SJuan76 Моя ошибка. отредактировал его на st (r.readLine()); – Ankit

ответ

-1

Пожалуйста, используйте отдельный метод, который имеет свою линию в качестве аргумента и возвращает целое число, маркер и получить его на месте.

+0

Не только укажите URL-адрес ... укажите важную часть вашего ответа, поскольку контент, на который вы ссылаетесь, может измениться или даже исчезнуть! –