2013-10-24 2 views
1

У меня есть мой код здесь, который хотел бы изменить Stringtokenizer на String, потому что информация, которую я получаю, находится в предложении, и я хотел бы сократить ее до определенной части.Как изменить Stringtokenizer на String

StringTokenizer numberOfPost_string = new StringTokenizer(numberOfPost_text , delimiters); 

System.out.println(numberOfPost_string.nextToken()); 

int numberOfPost = Integer.parseInt(numberOfPost_string); 

Проблема я сталкиваюсь находится на line int numberOfPost = Integer.parseInt(numberOfPost_string);, где он дает мне ошибку.

Или есть другой способ для меня сократить предложение и преобразовать его в целое число?

+0

вам нужно развесить содержимое numberOfPost_text и разделителей – tom

+0

Что я получаю от numberOfPost_text является «1,221 (0.9 сообщений в день/0.00% всех сообщений форума) ". То, что я хочу, - это значение 1 221 из строки. Мои разделители - это пробелы –

+0

использовать регулярные выражения для этого, а не для токенизатора – tom

ответ

2

Вы, вероятно, хотите использовать возвращаемое значение nextToken:

StringTokenizer numberOfPost_string = new StringTokenizer(numberOfPost_text , delimiters); 
int numberOfPost = Integer.parseInt(numberOfPost_string.nextToken()); 

Вы также можете сделать это с split: (хотя это, вероятно, несколько менее эффективен)

int numberOfPost = Integer.parseInt(numberOfPost_text.split(delimiters)[0]); 

Имейте в виду, что split принимает regular expressionString, поэтому для указания нескольких параметров символов вам необходимо окружить их []. Чтобы указать ;, , или ::

String delimiters = "[;,:]"; 
+0

. Похоже, проблема в 'int numberOfPost = Integer.parseInt (numberOfPost_string.nextToken());' Я получаю ошибки в этой строке. Не могли бы вы помочь мне проверить? Извините, я новичок в Java. –

+0

Какая ошибка вы получаете? – Dukeling

+0

Исключение в потоке java.lang.NumberFormatException "АВТ-EventQueue-0": Для входной строки: "1221" \t на java.lang.NumberFormatException.forInputString (NumberFormatException.java:65) \t на java.lang.Integer. ParseInt (Integer.java:492) \t в java.lang.Integer.parseInt (Integer.java:527) \t в fyp.draft.pkg1.Design.jButton2ActionPerformed (Design.java:161) и многое другое –

0

Чтобы преобразовать маркеры в строку

String x = ""; 
StringTokenizer in = new StringTokenizer(str, ",;"); 
while(in.hasMoreTokens()) { 
    x = x + in.nextToken().toString(); 
} 
System.out.print(x); 
Смежные вопросы