我想在字符串数组中识别字母中的元素和数字中的元素。还有其他方法吗?
String a[]={"aaaa","111111","bbbbbb"};
for(int i=0;i<a.length;i++)
{
post your code for this FOR LOOP
}
我想在字符串数组中识别字母中的元素和数字中的元素。还有其他方法吗?
String a[]={"aaaa","111111","bbbbbb"};
for(int i=0;i<a.length;i++)
{
post your code for this FOR LOOP
}
他们说你有问题......所以你选择正则表达式来解决它,现在你有两个问题。:-)
但是,如果速度不是什么大问题,您可以尝试一下,假设您有良好的单元测试。类似于以下内容:
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() 并捕获异常,但这是不好的编程,因为您将异常用于逻辑。
遍历数组并编写一个函数来检查 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;
}