使用扫描仪时忽略连字符

时间:2012-09-20 07:10:38

标签: java java.util.scanner

使用扫描仪时是否有任何简单的方法可以忽略连字符?我有一个程序,允许你购买一个区域(2D阵列),所以如果用户想要购买区域3-6,我希望扫描仪将数字放在连字符前面的数字和列后面的数字。有没有简单的方法呢?

String[][] buyer = new String[10][15];
int row;
int column; 
System.out.print("Specify which area you want to buy: ");
row = scan.nextInt();
column = scan.nextInt();

String name;
System.out.print("Name of the buyer: ");
name = scan.nextLine();
buyer[row][colum] = name

4 个答案:

答案 0 :(得分:1)

如果您的输入始终采用此格式(num1-num2),则可以使用:

String area = scan.next();
StringTokenizer st = new StringTokenizer(area);
st.split("-");
int row = Integer.parse(st.nextToken());
int col = Integer.parse(st.nextToken());

答案 1 :(得分:0)

我个人认为它是一个字符串,然后您可以使用String.split()将其拆分为两个值,然后您可以解析为整数。可能还有其他选择。

答案 2 :(得分:0)

扫描仪有一些不好的和一些好的方面,如果你不知道下一个字符是什么,那么坏的一面是不行的。

你可以使用Scanner.hasNextInt()如果不是这样,那么char char to char hasNextInt的字符是真的。

答案 3 :(得分:0)

我认为您可以使用Scanner.skip

row = scan.nextInt();
scan.skip("-");
column = scan.nextInt();
相关问题