Как проверить, что строка содержит числовой формат в Java?

#java #string

#java #строка

Вопрос:

Я новичок в концепции апплета. Я хочу реализовать одно приложение. В апплете есть 2 текстовые области и одна кнопка. Первая текстовая область — это ввод (означает, что она содержит некоторый текст).Вторая текстовая область пуста.Если вы нажмете на кнопку, то текст в первой текстовой области будет проанализирован (здесь проанализированный означает, что текст в первой текстовой области содержит некоторый текст, верно? этот текст содержит здесь некоторое число, которое будет удалено, а оставшийся текст будет вставлен во вторую текстовую область) ПРИМЕР: Текстовая область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);
        }
    }

}
  

Комментарии:

1. Как насчет пометки его строкой?

Ответ №1:

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

 ta2.setText(text.replaceAll("[0-9]  ?", ""));
  

Комментарии:

1. Спасибо. Но я хочу скопировать строку до номера find (означает 1.переполнение стека 2. Google после синтаксического анализа в первой строке stack overflow и в следующей строке Google). Пожалуйста, как это сделать

2. Я не уверен на 100%, что понимаю вас. Вы имеете в виду, что хотите получить текст между числами в отдельных переменных, которые вы можете прочитать? Если это так text.split("[0-9]"); , это даст вам массив строк, разделенных на числа.

Ответ №2:

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

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

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

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

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

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

Комментарии:

1. Как получить строку между числами (означает 1. Переполнение стека 2. Google как получить переполнение стека)

Ответ №3:

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

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

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

    return list;
}
  

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