Как проверить, что строка содержит числовой формат в Java? - PullRequest
0 голосов
/ 13 октября 2011

Я новичок в концепции апплета. Я хочу реализовать одно приложение. Апплет имеет 2 текстовые области и одну кнопку. Первая текстовая область - это ввод (означает, что он содержит некоторый текст). Вторая текстовая область пуста. Если вы нажмете кнопку, то текст в первой текстовой области будет проанализирован (здесь синтаксический анализ означает, что текст первой текстовой области содержит некоторый текст, верно? этот текст содержит здесь некоторое число, номера будут удалены, а оставшийся текст будет вставлен во вторую текстовую область) EX: Текстовая область1: 1. Переполнение стека 2 Google 3 Yahoo после нажатия кнопки Текстовая область2: переполнение стека Google Yahoo

Вот как проверить число в строке? и как получить строку до числа.

public class parsetextdata extends Applet implements ActionListener{

    TextArea ta1,ta2;
    Button parse;
    public void init() { 
        ta1 = new TextArea();

        ta1.setText("1. Naresh Repalle 2. Lakshman Yalavarthy 3. Rajendra Batchu 4. Bhart Chand Yalavrthy ");
        add(ta1); 

        parse = new Button();
        parse.setLabel("parse");
        add(parse); 

        ta2 = new TextArea();    
        add(ta2);              

        parse.addActionListener(this);

      }

    @Override
    public void actionPerformed(ActionEvent button) {

        if(button.getSource() == parse)
        {
            String text = ta1.getText();        
            ta2.setText(text);
        }
    }

}

Ответы [ 3 ]

2 голосов
/ 13 октября 2011

Если ваша цель - просто удалить цифры (и пробелы, как это делают ваши примеры), вы можете просто использовать String.replaceAll так:

ta2.setText(text.replaceAll("[0-9]+ ?", ""));
2 голосов
/ 13 октября 2011

Просто используйте:

text.replaceAll("[\\w]*[0-9.]+[\\w]*", "\n");

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

Чтобы получить строки между числами, используйте метод split ().

String[] names = text.split("[\\w]*[0-9.]+[\\w]*");

Регулярное выражение теперь также удаляет пробелы между числами и именами. String[] names будет содержать отдельные имена.

0 голосов
/ 13 октября 2011

Вы можете использовать следующий код

private static ArrayList <Character> getNumberRemoved(String string) {

    ArrayList <Character> list = new ArrayList <Character> ();
    char [] inString = string.toCharArray();
    for (char ch : inString)
    {
        if (ch >= '0' && ch <='9')
            continue;
        list.add(ch);
    }

    return list;
}

Это займет O (n) время.в основном ходят по персонажам и пропускают номера.

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