2011-10-13 70 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)時間。基本上遍歷字符並跳過數字。

相關問題