黑马程序员技术交流社区
标题: 判断一个字符串是否由数字组成? [打印本页]
作者: jagon 时间: 2014-3-20 09:05
标题: 判断一个字符串是否由数字组成?
本帖最后由 jagon 于 2014-3-20 13:04 编辑
public class TestDemo {
public static void main(String[] args) throws Exception {
String str = " 13412a 4124214141232" ;
if (isNumber(str)) {
System.out.println("是由数字所组成!");
} else {
System.out.println("不是由数字所组成!");
}
}
public static boolean isNumber(String data) {
char arr [] = data.toCharArray() ; // 字符串变为字符数组
for (int x = 0; x < arr.length; x++) {
if (arr[x] < 0 || arr[x] > 9) {
return false ;
}
}
return true ;
}
}
判断一个字符串是否由数字组成,代码写完了,可怎么比较不了,为什么啊?
作者: 方青木 时间: 2014-3-20 09:09
if (arr[x] < '0' || arr[x] > '9')
return false ;
作者: syw02014 时间: 2014-3-20 09:38
再试试:- public class TestDemo {
- public static void main(String[] args) throws Exception {
- String str = "13412a 4124214141232" ;
- if (isNumber(str)) {
- System.out.println("是由数字所组成!");
- } else {
- System.out.println("不是由数字所组成!");
- }
- }
- public static boolean isNumber(String data) {
- char arr [] = data.toCharArray() ; // 字符串变为字符数组
- for (int x = 0; x < arr.length; x++) {
- if (arr[x] < '0' || arr[x] > '9') {
- return false ;
- }
- }
- return true ;
- }
- }
复制代码
作者: SyouRai_Tsk 时间: 2014-3-20 12:25
以后记住,字符串比较不能不加' '
- public class TestDemo {
- public static void main(String[] args) throws Exception {
- String str = "13412a 4124214141232" ;
- if (isNumber(str)) {
- System.out.println("是由数字所组成!");
- } else {
- System.out.println("不是由数字所组成!");
- }
- }
- public static boolean isNumber(String data) {
- char arr [] = data.toCharArray() ; // 字符串变为字符数组
- for (int x = 0; x < arr.length; x++) {
- if (arr[x] < '0' || arr[x] > '9') {
- //上面必须用'',不然就是比较数字int类型的了
- return false ;
- }
- }
- return true ;
- }
- }
复制代码
作者: leon_hm 时间: 2014-3-20 12:40
- public class TestMain {
- public static void main(String[] args) {
-
- System.out.println((int)'0' );
- System.out.println((int)'9' );
-
-
- }
- }
- /*
- result:
- 48
- 57
- */
复制代码
'0'和'9'直接转换成int是对应48和57.
‘0’和0对比的时候是char和int对比,自动会转换成int。
所以就等价于48和0对比。当然不相等啦
作者: my_android_drea 时间: 2014-3-20 14:13
本帖最后由 my_android_drea 于 2014-3-20 14:19 编辑
if (arr[x] < 0 || arr[x] > 9) { return false ; } 你这里的 0 和 9 不加单撇号就是把 字符的ASCII码的十进制代码和0 9(int)比较了(ASCII码十进制代码比9大的多了去了),当然判断不了啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |