如何检查字符串是否包含Java中的数字格式?

我是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); } } } 

如果你的目标只是删除数字(和你的例子那样的空格),你可以简单地使用String.replaceAll:

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

只需使用:

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

它用换行符替换所有数字字符和点,因此如果将结果放到JTextArea,则每个名称都在一行上。

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

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

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

您可以使用以下代码

 private static ArrayList  getNumberRemoved(String string) { ArrayList  list = new ArrayList  (); char [] inString = string.toCharArray(); for (char ch : inString) { if (ch >= '0' && ch <='9') continue; list.add(ch); } return list; } 

这将花费O(n)时间。 基本上是通过字符和跳过数字。