Печать только строки - PullRequest
       3

Печать только строки

0 голосов
/ 24 сентября 2010

Уважаемые все, у меня есть 2 входные строки 1) стек, переполнение, поток 2) стек / переполнение, поток, com Я хотел бы печатать только строки (без специального символа) из указанного выше ввода 2 для первого ввода, который я использовал нижефункция, но для 2-го ввода я не знаю, как его обработать. Пожалуйста, дайте мне решение.

st = new StringTokenizer("stack,over,flow", ",");
       while (st.hasMoreTokens())
        {
            String token = st.nextToken();
           System.out.println("token = " + token);
        }

вывод:

stack
over
flow

Ответы [ 3 ]

0 голосов
/ 24 сентября 2010

Можете ли вы определить, что вы подразумеваете под специальным символом ?Вы имеете в виду «только буквенно-цифровые символы»?

Если вы хотите удалить все возможные специальные символы и оставить только буквенно-цифровые символы, вы можете использовать следующее:

s = s.replaceAll("[^a-zA-Z0-9]", "");

Если вы хотите напечатать их по одному:

s = s.replaceAll("[^a-zA-Z0-9]", "/");
String[] splitString = s.split("/");
for(String str:splitString)
{
   System.out.println(str);
}

EIDT: Так как вы спросили: в приведенном выше коде используется расширенный цикл для цикла (также называемый циклом for-each), введенный Java 5. Использование 'normal'for цикл, это:

s = s.replaceAll("[^a-zA-Z0-9]", "/");
String[] splitString = s.split("/");
for(int i=0; i<splitString.length(); i++)
{
   String str = splitString[i];
   System.out.println(str);
}

Также:

StringTokenizer - это устаревший класс, который сохраняется из соображений совместимости, хотя его использование не рекомендуется в новом коде.Всем, кто ищет эту функцию, рекомендуется использовать метод split из String или пакет java.util.regex.

(из javadoc )

0 голосов
/ 24 сентября 2010

Это должно работать для вас в обоих случаях:

   String[] strArr=yourString.split("[/,]");
   for(String str:strArr)
   {
     System.out.println(str);
   }
0 голосов
/ 24 сентября 2010

Вам нужно лучше отформатировать свой вопрос, за ним трудно следовать.Но если я правильно прочитал,

st = new StringTokenizer("stack,over,flow", ",/");

Должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...