java中从控制台输入(要怎样才能规定只能输入数字呢)希望能有源代码说明,我是新手!谢谢各位大虾

 我来答
w0rchid
2011-02-27 · TA获得超过173个赞
知道答主
回答量:108
采纳率:0%
帮助的人:69.2万
展开全部

public static void main(String[] args) {

   /** 写一个程序:从控制台输入,使之把字符串的数字给提炼出来

   * 如:输入:“wa21ttw43p6ku5mm” 输出:214365 */

  System.out.println("请输入:");

  Scanner s = new Scanner(System.in);

  String str = s.next();

  String reg = "\\d";//正则表达式

  StringBuffer result = new StringBuffer();

  StringBuffer sb = new StringBuffer();

  for(int i = 0;i < str.length();i++){

   sb.append(str.charAt(i)).append("_");

  }

  String mes = sb.toString();

  String[] data = mes.split("_");

  for (String st : data) {

   if(st.matches(reg)){

    result.append(st);

   }

  }

  System.out.println(result);

  

 }

追问
String reg = "\\d";//正则表达式
\\d这是什么意思啊
for (String st : data)
st 和 data之间是什么意识啊,有点不懂,能解释一下吗
追答
\\d这是什么意思啊--这是正则表达式,'\d' 表示:任意数字类型 【0-9】,前面要用转义字符"\"转义一下--这就是“\\d”了
for (String st : data){
}这是JDK1.5以后提供的方法,就是迭代,遍历
用for()循环也可以
for(int i = 0;i < data.length;i++){
if(data[i].matches(reg)){
result.append(data[i]);
}
}
TableDI
2024-07-18 广告
在上海悉息信息科技有限公司,我们经常使用Excel来处理和分析数据。其中,包含关键字匹配是Excel中一个非常实用的功能。它可以帮助我们快速在大量数据中找出包含特定关键字的单元格。通过这个功能,我们可以轻松筛选出符合特定条件的数据,从而进行... 点击进入详情页
本回答由TableDI提供
linzhanggeorge
2011-02-27 · 超过14用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:32.8万
展开全部
import java.util.Scanner;
public class InputTest {
public static void main(String[] args){
try {
System.out.println(getNum());//调用这个函数获取数字
} catch (Exception ex) {
System.out.println("请输入数字!");
}
}
public static int getNum() throws Exception{
Scanner sc=new Scanner(System.in);
String str=sc.next();
assert str.matches("[-]?[\\d]+");
//使用断言,如果输入的符合正则表达式继续,否则抛出异常
return Integer.parseInt(str);
}
}
追问
谢谢你的回答哈
matches("[-]?[\\d]+");你能帮我在解释一下里面的正则表达式吗
追答
[-]?指的是有0个或者1个'-'符,即可以允许存在负号。
[\\d]+指的是必须要有一个或多个数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式