Как изменить 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); где это дает мне ошибку.

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

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 принимает регулярное выражение String Таким образом, чтобы указать несколько вариантов для символов, вам нужно будет окружить их [], Указать ;, , или же ::

String delimiters = "[;,:]";

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

String x = "";
StringTokenizer in = new StringTokenizer(str, ",;");
while(in.hasMoreTokens()) {
    x = x + in.nextToken().toString();
}
System.out.print(x);
Другие вопросы по тегам