我试图制作一个带有K个坐标的程序,并为每个坐标打印" X = ___,Y = ____"。所以这意味着输出具有这种格式的K行。
程序应该在到达只包含数字" 0"的行时停止,这是我正在努力实现的。这是我的代码:
public static void main (String [] args){
Scanner scanner = new Scanner (System.in);
String kString = scanner.next();
if (!kString.equals("0")){
int K = Integer.parseInt(kString);
int [] xCords = new int [K];
int [] yCords = new int [K];
for (int i=0; i<K; i++){
xCords[i] = scanner.nextInt();
yCords[i] = scanner.nextInt();
System.out.println ("X = "+xCords[i]+", Y = "+yCords[i]);
}
}else{
System.exit(1);
}
}
如果我的第一行只是数字0,程序就会停止运行。
如果它是另一个数字,它实际上可以让我扫描K个坐标,但是从第二个K值开始有一个奇怪的行为,依此类推。
如果我试图阻止它输入等于0的行(而不是第一行),它就不会停止。
任何错误的线索?
答案 0 :(得分:0)
你应该使用nextLine
代替next
,当你找到一条只包含“0”的行时你想要停止:
String kString = scanner.nextLine();
while (kString != null && !kString.equals("0")){
... processing the current kString ...
kString = scanner.nextLine();
}
答案 1 :(得分:0)
使用
扫描整个文档while(scanner.hasNextLine()){
String line = scanner.nextLine();
if(line.equals("0")){
//break out of loop
}
}
然后如果您扫描的行等于“0”,则可以突破循环
答案 2 :(得分:0)
最后,它是你所有建议的混合物。这是我的最终工作代码:
@Entity
@Table(name = "user_sessions")
@JsonIgnoreProperties( { "userID" })
public class UserSession{
@Column(name="uid")
private Long userID;
@Id
@Column(name="access_key")
private String accessKey;
@Column(name="secret_key")
private String secretKey;
public Long getUserID() {
return userID;
}
public void setUserID(Long s) {
this.userID = s;
}`