小弟想问下:
1.不使用正则怎么从一串字符串中判断是否包含0-9的数字。
2.下面这段代码为啥全部是true? 
3.int类型和char类型能直接比较么?
4.还有就是如何判断一段字符串当中是否包含空串("")  如果有我该怎么验证呢?
String s="123";
char[] arr=s.toCharArray();
for(int x=0;x<arr.length;x++){
System.out.println(arr[x]);
System.out.println(arr[x]>2);
}

解决方案 »

  1.   

    char[] arr=s.toCharArray();
    System.out.println(arr[x]>2);这里arr是指字符串中的每个字符,对于英文或数字而言,就是ASCII码。
    '0' 字符的ASCII是48,'9'字符的ASCII是57,都远远比2更大。你要用:
    if (arr[x]>='0' && arr[x]<='9') System.out.println("这是数字" + arr[x]);
      

  2.   


    public class Test40 { public static void main(String[] args) {

    String str = " sdfgadsgad9";
    System.out.println(hasNumber(str));
    System.out.println(hasBlank(str));
    }
    //判断是否有数字
    public static boolean hasNumber(String str){

    for(int i=0; i<str.length(); i++){
    char ch = str.charAt(i);
    if(ch>=48 && ch<=57){
    return true;
    }
    }
        return false;
    }
    //判断是否有空格
    public static boolean hasBlank(String str){

    for(int i=0; i<str.length(); i++){
    char ch = str.charAt(i);
    if(ch== ' '){
    return true;
    }
    }

    return false;
    }
    }int类型和char类型能直接比较,就是把char类型的转化为ascii码值3后与int类型的值进行比较!
      

  3.   

    2.下面这段代码为啥全部是true?
    ---->arr[x]>2
    左边是字符,右边是数字,最小的字母ascii值有
    3.int类型和char类型能直接比较么?
     --->可以
    4.还有就是如何判断一段字符串当中是否包含空串("") 如果有我该怎么验证呢?
    ---->空串还是空格啊?if("".equals(str)){System.out.println("是空串")}如果是空串,只能说是不是空串,没有包含一说
      

  4.   

    空串和空格和null的区别。
    String str = null;//str = null
    str = new String();//此时str = "";空串
    str = " ";//此时str = " ";空格
    区别很简单,刚新建对象,或者赋值空串,啥内容也没有。空格的意思里面好歹也包含一个空格,空格是个字符。
      

  5.   

    我是这么理解的,如果你要证明是不是含空串根本无需证明,因为任何一个str="字符串"+"",相当于一个真命题,没什么意思,还谈什么包含。
      

  6.   

    大神是不是可以这么理解,在char类型当中的比较,都是比较的是ASCII码的值,并不是比较的是我传入的这个数字的本身。如果想比较数字的大小,则必须将这个数字加上单引号去比较。
      

  7.   

    也可以把字符转换为数字,比如Integer.valueOf(String.valueOf('3'));
    如果想比较数字的大小,则必须将这个数字加上单引号去比较。
    --->恩,还有不要叫我大神。闻道有先后,术业有专攻3Q