使用扫描仪时是否有任何简单的方法可以忽略连字符?我有一个程序,允许你购买一个区域(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
答案 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();