在使用scanner时,有什么简单的方法可以忽略连字符吗?我有一个程序,将允许您购买一个区域(二维阵列),所以如果用户想要购买区域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发布于 2012-09-20 15:15:38
如果您的输入始终采用此格式(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-20 15:18:45
就我个人而言,我将其作为字符串读取,然后可以使用String.split()将其拆分为两个值,然后可以解析为int。不过,可能还有其他选择。
发布于 2012-09-20 15:21:57
扫描仪有一些坏的一面和一些好的一面,坏的一面是如果你不知道下一个字符是什么,这是不起作用的。
您可以使用Scanner.hasNextInt(),如果不是这样,那么将char for char读到hasNextInt是真的。
https://stackoverflow.com/questions/12507642
复制相似问题