A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 403383221 中级黑马   /  2012-11-13 21:19  /  1195 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴愿涛 于 2012-11-13 21:52 编辑

如果从屏幕上输入一串字符串,如何知道这一串字符串是否都是数字?

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个! 鼓励一下。

查看全部评分

2 个回复

倒序浏览
本帖最后由 邵天强 于 2012-11-13 21:37 编辑

String对正则表达式支持的非常的好,我们可以用正则表达式来判断是否都是数字
代码如下:
package com.itheima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test {
public static void main(String[] args) throws IOException {
  BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));//创建一个字符流对象
  String str=buf.readLine();//接受从键盘输入的字符串
  //String中的matches方法的参数接受一个正则表达式,判断是否全部是数字可以用"\\d+"
  if(str.matches("\\d+")){//如果匹配的都是数字,则打印下面的一句话
   System.out.println("都是数字");
  }else{//如果比匹配则打印这句话
   System.out.println("不全是数字");
  }
}
}
附上正则表达式的内容:
字符
x字符 x
\\反斜线字符
\0n带有八进制值 0 的字符 n (0 <= n <= 7)
\0nn带有八进制值 0 的字符 nn (0 <= n <= 7)
\0mnn带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh带有十六进制值 0x 的字符 hh
\uhhhh带有十六进制值 0x 的字符 hhhh
\t制表符 ('\u0009')
\n新行(换行)符 ('\u000A')
\r回车符 ('\u000D')
\f换页符 ('\u000C')
\a报警 (bell) 符 ('\u0007')
\e转义符 ('\u001B')
\cx对应于 x 的控制符
字符类
[abc]a、b 或 c(简单类)
[^abc]任何字符,除了 a、b 或 c(否定)
[a-zA-Z]a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]]a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]d、e 或 f(交集)[/td]
[a-z&&[^bc]]a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]]a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类
.任何字符(与行结束符可能匹配也可能不匹配)
\d数字:[0-9]
\D非数字: [^0-9]
\s空白字符:[ \t\n\x0B\f\r]
\S非空白字符:[^\s]
\w单词字符:[a-zA-Z_0-9]
\W非单词字符:[^\w]


评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 很给力!

查看全部评分

回复 使用道具 举报
可以把字符串转成字符数组。
然后再建个数组,里面放0-9;eg:char[] ints = {0,1,2,3,4,5,6,7,8,9}
在把你字符串的到的char[]数组里的一个一个元素去匹配数字数组里的元素。

上次有个题搞了很长时间,最后我用这方法判断的,感觉笨了点。

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 鼓励下 。

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马