JAVA方面判断字符串是String型还是Int型的判断问题。。

比如说String[] a={"倚楼听","风雨","32","18","淡看","江湖路"};我for循环的时候怎么样实现,汉字的就设为0,数字的就换成double型???这个怎么判断呢?求大神写个代码看看。。。谢谢哦!~
最新回答
安和桥

2025-03-30 04:39:57

public class test {
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
public static void main(String[] args) {

String[] a={"倚楼听","风雨","32","18","淡看","江湖路"};
double change[]=new double[a.length];
for (int i=0;i<a.length;i++)
{
if(isNumeric(a[i]))
change[i]=Double.parseDouble(a[i]);
else change[i]=0;

}
for(int i=0;i<change.length;i++)
System.out.print(change[i]+" ");
}
}

我把结果都放在double类型的change数组里,所以汉字的设为0.0了。不然数组类型不统一
随风而去

2025-03-30 07:10:28

public static void main(String[] args) {
String[] a = {"倚楼听","风雨","32","18","淡看","江湖路"};
int j = a.length;
double[] doubArr = new double[j];
for (int i=0; i<j; i++){
try {
doubArr[i] = Double.parseDouble(a[i]);
} catch (NumberFormatException e) {
// e.printStackTrace();
doubArr[i] = 0;
}
}
for (double d:doubArr){
System.out.println(d);
}
}
转换之后的结果存放在doubArr中,后面那个for循环是为了验证结果用的。
猫吻

2025-03-30 07:30:54

用正则
public static void main(String[] args) {
String[] a={"倚楼听","风雨","32","18","淡看","江湖路"};
for (int i = 0; i < a.length; i++)
{
if (a[i].matches("^[\\u4e00-\\u9fa5]*$")){
a[i] = "0";
}
else if (a[i].matches("^\\d*$"))
{
a[i] = Double.parseDouble(a[i])+"";
}
}//end of for
System.out.print(Arrays.toString(a));
}//end of main
想你想的,我骨头痛。

2025-03-30 15:34:22

a[i].equals("要判断的值");
这个方法数字和字符串都能判断的。
风中的歌声

2025-03-30 03:18:02

使用apache-lang包的StringUtils工具类。isNumeric判断是否数字。