以前我用Scanner.nextInt接受输入的整数
今天做的题输入是
1,1

1:(2) 3  4
这样的格式
Scanner似乎不管用了
我该怎么接收这些整数呢?

解决方案 »

  1.   

    哎 帮LZ消灭0回复 = =  Scanner貌似不行吧如果你逐字符读取再转换呢?
      

  2.   


    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了
      

  3.   

    可以用古老的键盘输入方法:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String inputStr = br.readLine();//直接读取输入的一行字符串
      

  4.   

    字符串处理呗,用个循环逐个读,然后用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);
    }
      

  5.   

    谢谢大牛们的回复 很受启发!
    像8楼构造的int数组
    能否直接转换为int?
    否则直接使用的话还是很不方便
    还有 \t是什么意思啊?
    我复制过去跑了一下 结果只打出了最高位的数字
    删掉之后就打出了全部的数字
      

  6.   

    我了个去,我也是刚开始学java,我表示压力好大
      

  7.   


    \t 是tab字符
    \n是回车
    \r是换行
      

  8.   


    数组转int是什么意思?{1,2,3,4}转成1234?
      

  9.   

    String 是用的最广的一个类,几乎所有的交互操作都和String有关,还是要多熟悉String以及StringBuffer类的
      

  10.   

    如果是123ASDfs12
    要分解成两个int ,123 12
    还是在判断语句实现,用StringBuffer类
      

  11.   

    我用了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);就是出来的顺序与原来顺序不同!!你再改改
      

  12.   

    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]);
      

  13.   

    我发现用正则更加简单
    代码如下 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);
    }