菜鸟求助!关于java的输入 以前我用Scanner.nextInt接受输入的整数今天做的题输入是1,1和1:(2) 3 4这样的格式Scanner似乎不管用了我该怎么接收这些整数呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哎 帮LZ消灭0回复 = = Scanner貌似不行吧如果你逐字符读取再转换呢? 像1,1这种我搞明白了 可以Scanner scan=new Scanner;String x=scan.next();String num[]=x.split(",");int w=Integer.parseInt(num[0]);int v=Integer.parseInt(num[1]);但1:(2)3 4这种混乱的输入中提取整数我还是不会正则我还没学过也许明天上机只能先用C了 可以用古老的键盘输入方法:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String inputStr = br.readLine();//直接读取输入的一行字符串 字符串处理呗,用个循环逐个读,然后用if语句判断就行数字, BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String inputStr = br.readLine();//直接读取输入的一行字符串 int []arr=new int[inputStr.length()]; int j=0; for(int i=0;i<inputStr.length();i++){ arr[i]=(int)inputStr.charAt(i)-48; if(arr[i]<=9&&arr[i]>=0){ arr[j]=arr[i]; j++; } } for(int x=0;x<j;x++) System.out.print("\t"+arr[x]); System.out.println("\n j="+j); } 谢谢大牛们的回复 很受启发!像8楼构造的int数组能否直接转换为int?否则直接使用的话还是很不方便还有 \t是什么意思啊?我复制过去跑了一下 结果只打出了最高位的数字删掉之后就打出了全部的数字 我了个去,我也是刚开始学java,我表示压力好大 \t 是tab字符\n是回车\r是换行 数组转int是什么意思?{1,2,3,4}转成1234? String 是用的最广的一个类,几乎所有的交互操作都和String有关,还是要多熟悉String以及StringBuffer类的 如果是123ASDfs12要分解成两个int ,123 12还是在判断语句实现,用StringBuffer类 我用了String中的几个方法做了一下:BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); String[] strN = new String[]{"1","2","3","4","5","6","7","8","9","0"};//见一个数字数组用来分别对比 String inNum = ""; //声明一个新的字符串用来接收数字 for(int i= 0; i< strN.length; i++){ for(int j = 0; j < str.length();j++){ if(str.contains(strN[i])){ //判断是否含有strN[i] str = str.replaceFirst(strN[i], " "); //把第一个出现的数字换成空格或其他非数字符号 inNum = inNum.concat(strN[i]); //把这个数字添加到inNum中 } } } int abc = Integer.valueOf(inNum);//把字符串转换为int型 System.out.println(abc);就是出来的顺序与原来顺序不同!!你再改改 1,1这种我搞明白了 可以Scanner scan=new Scanner;String x=scan.next();String num[]=x.split(",");int w=Integer.parseInt(num[0]);int v=Integer.parseInt(num[1]); 我发现用正则更加简单代码如下 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String inputStr = br.readLine();//直接读取输入的一行字符串 String [] strArr=inputStr.split("\\D+"); for(String x:strArr){ System.out.println(x); } Java,怎样关闭Jframe界面啊 请教高手一个线程同步的问题! 如何去除古怪符号? this的疑惑 JPanel是否可以添加另一个JPanel?如何解决这个问题 谁能解释下这个线程例子 运行顺序怎么样的? 如何判断键盘输入的是一个空字符串? 查找JAVA资源 Jbuilder中可以使用pilot 配置mysql吗? 根据Java提供的.class的文件结构我们可以编写出针对.class文件的反编译程序吗? 为什么scala代码被编译成字节码后不能用java解释器执行? 请教:java 程序里如何实现从一个列表中拖动一个元素到另一个列表中?
1,1
这种我搞明白了 可以
Scanner scan=new Scanner;
String x=scan.next();
String num[]=x.split(",");
int w=Integer.parseInt(num[0]);
int v=Integer.parseInt(num[1]);但
1:(2)3 4
这种混乱的输入中提取整数我还是不会
正则我还没学过
也许明天上机只能先用C了
String inputStr = br.readLine();//直接读取输入的一行字符串
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String inputStr = br.readLine();//直接读取输入的一行字符串 int []arr=new int[inputStr.length()];
int j=0; for(int i=0;i<inputStr.length();i++){
arr[i]=(int)inputStr.charAt(i)-48;
if(arr[i]<=9&&arr[i]>=0){
arr[j]=arr[i];
j++;
}
}
for(int x=0;x<j;x++)
System.out.print("\t"+arr[x]);
System.out.println("\n j="+j);
}
像8楼构造的int数组
能否直接转换为int?
否则直接使用的话还是很不方便
还有 \t是什么意思啊?
我复制过去跑了一下 结果只打出了最高位的数字
删掉之后就打出了全部的数字
\t 是tab字符
\n是回车
\r是换行
数组转int是什么意思?{1,2,3,4}转成1234?
要分解成两个int ,123 12
还是在判断语句实现,用StringBuffer类
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String[] strN = new String[]{"1","2","3","4","5","6","7","8","9","0"};//见一个数字数组用来分别对比
String inNum = ""; //声明一个新的字符串用来接收数字
for(int i= 0; i< strN.length; i++){
for(int j = 0; j < str.length();j++){
if(str.contains(strN[i])){ //判断是否含有strN[i]
str = str.replaceFirst(strN[i], " "); //把第一个出现的数字换成空格或其他非数字符号
inNum = inNum.concat(strN[i]); //把这个数字添加到inNum中
}
}
}
int abc = Integer.valueOf(inNum);//把字符串转换为int型
System.out.println(abc);就是出来的顺序与原来顺序不同!!你再改改
这种我搞明白了 可以
Scanner scan=new Scanner;
String x=scan.next();
String num[]=x.split(",");
int w=Integer.parseInt(num[0]);
int v=Integer.parseInt(num[1]);
代码如下 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String inputStr = br.readLine();//直接读取输入的一行字符串
String [] strArr=inputStr.split("\\D+"); for(String x:strArr){
System.out.println(x);
}