#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) времени. в основном проходите по символам и пропускайте числа.