2011-10-13 104 views
-1

我是applet概念的新手。我想实现一个应用程序。该小程序有2个文本区域和一个按钮。第一个文本区域是输入(意味着它包含一些文本)。第二个文本区域是空的。如果单击该按钮,则会解析第一个文本区域中的文本(这里解析意味着第一个文本区域文本包含一些文本,对吗?文本中包含一些数字,这些数字将被删除,其余文本将被粘贴到第二个文本区域中) EX: 文本区域1:1.堆栈溢出2 Google 3 yahoo 按钮单击后 文本区域2:堆栈溢出 Google 雅虎如何检查字符串是否包含Java中的数字格式?

这里如何检查字符串中的数字?以及如何获取字符串的数量。

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

怎样用字符串标记它? – Sibbo

回答

2

只需使用:

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

它替换所有数字字符和点有一个换行符,所以如果你把结果给一个JTextArea,每一个名字都会在单独一行。

要获取数字之间的字符串,请使用split()方法。

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

正则表达式现在还可以删除数字和名称之间的空格。 String[] names将包含单个名称。

+0

如何获取数字之间的字符串(意味着1.堆栈溢出2.谷歌如何获得堆栈溢出) – naresh

2

如果你的目标只是(如你的例子做,空格)删除号码,你可以简单地使用String.replaceAll这样的:

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

谢谢。但我想复制字符串到数字是发现(意味着1.堆溢出2.谷歌解析后,在第一行堆栈溢出和下一行谷歌)。请怎么做 – naresh

+0

我不是100%确定我理解你。你的意思是你想要在可以阅读的单独变量中获得数字之间的文本吗?如果是这样,使用'text.split(“[0-9]”);'这会给你一个字符串数组拆分的数组。 – Thor84no

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)时间。基本上遍历字符并跳过数字。

相关问题