1

使用扫描仪时有什么简单的方法可以忽略连字符吗?我有一个程序可以让您购买一个区域(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

4 回答 4

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());
于 2012-09-20T07:15:38.273 回答
0

就我个人而言,我会将它作为字符串读取,然后您可以使用String.split()将其拆分为两个值,然后您可以将其解析为整数。不过可能还有其他选择。

于 2012-09-20T07:18:45.117 回答
0

扫描仪有坏的一面,也有好的一面,坏的一面是如果你不知道下一个字符是什么,这不起作用。

您可以使用Scanner.hasNextInt(),如果不是这样,则读取 char for char tohasNextInt是正确的。

于 2012-09-20T07:21:56.843 回答
0

我认为您可以使用Scanner.skip

row = scan.nextInt();
scan.skip("-");
column = scan.nextInt();
于 2012-09-20T07:23:37.907 回答