我是applet概念的新手。我想实现一个应用程序。小程序有2个文本区域和一个按钮。第一个文本区域是输入(表示它包含一些文本)。第二个文本区域为空。如果单击该按钮,则解析第一个文本区域中的文本(此处解析表示第一个文本区域文本包含一些文本对吗?该文本包含一些数字,这些数字将被删除,剩余的文本将被粘贴到第二个文本区域) EX: 文本区域1:1。堆栈溢出2谷歌3雅虎 点击按钮后 文本区域2:堆栈溢出 谷歌 雅虎
这里如何检查字符串中的数字?以及如何使字符串达到数字。
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);
}
}
}
答案 0 :(得分:2)
只需使用:
text.replaceAll("[\\w]*[0-9.]+[\\w]*", "\n");
它用换行符替换所有数字字符和点,因此如果将结果放入JTextArea,则每个名称都在一行上。
要获取数字之间的字符串,请使用split()方法。
String[] names = text.split("[\\w]*[0-9.]+[\\w]*");
正则表达式现在还删除了数字和名称之间的空格。 String[] names
将包含单个名称。
答案 1 :(得分:2)
如果你的目标只是删除数字(以及你的例子中的空白),你可以简单地使用String.replaceAll:
ta2.setText(text.replaceAll("[0-9]+ ?", ""));
答案 2 :(得分:0)
您可以使用以下代码
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)时间。基本上是通过字符和跳过数字。