0

我想在字符串数组中识别字母中的元素和数字中的元素。还有其他方法吗?

String a[]={"aaaa","111111","bbbbbb"};





for(int i=0;i<a.length;i++)
{
post your code for this FOR LOOP
}
4

2 回答 2

3

他们说你有问题......所以你选择正则表达式来解决它,现在你有两个问题。:-)

但是,如果速度不是什么大问题,您可以尝试一下,假设您有良好的单元测试。类似于以下内容:

public static void testRegularExpressionForElement() {
    String[] a = new String[] {"test1", "13", "blah", "1234.44"};

    Pattern pattern = Pattern.compile("[-+]?[0-9]*\\.?[0-9]+");
    for (String element : a) {
        if (pattern.matcher(element).matches()) {
            System.out.println(element + " is a number");
        } else {
            System.out.println(element + " is not a number");
        }
    }
}

上述内容的好处在于,您可以调整表达式以完全匹配您想要的内容。

另一种方法是使用 Integer.parseInt() 并捕获异常,但这是不好的编程,因为您将异常用于逻辑。

于 2012-08-20T08:30:33.127 回答
2

遍历数组并编写一个函数来检查 isNumeric 与否。

for (a1 : a){
   boolean isNumbr= isNumeric(a1);
}

...

public static boolean isNumeric(String str)  
{  
  try  
  {  
    double d = Double.parseDouble(str);  
  }  
  catch(NumberFormatException nfe)  
  {  
    return false;  
  }  
  return true;  
}
于 2012-08-20T08:29:58.240 回答