gpt4 book ai didi

java - 当使用带有 next() 和 nextLine() 的扫描器读取 2 个看似相同的字符串时,为什么会得到 equals() == false ?

转载 作者:行者123 更新时间:2023-12-01 23:45:56 24 4
gpt4 key购买 nike

我正在制作一个基本计算器。当我尝试比较字符串并使用 next() 时,它工作正常,但是如果我使用 nextLine(),它就不起作用。怎么会这样? nextnextLine 实际上不是同一件事,只是一个跳过一行,一个不跳过一行吗?

这是我的代码:

import java.util.Scanner;

class apples{

public static void main(String args[]){

Scanner Max = new Scanner(System.in);

int num1, num2, answer;
String plumi;

System.out.println("enter your first number");
num1 = Max.nextInt();
System.out.println("enter your second number");
num2 = Max.nextInt();
System.out.println("enter if you want to use plus or minus");
plumi = Max.next();
if(plumi.equals("plus")){
answer = num1 + num2;
System.out.println("the answer is " + answer);
}
if(plumi.equals("minus")){
answer = num1 - num2;
System.out.println("the answer is " + answer);
}

}
}

最佳答案

它们不一样。

next()nextInt()方法首先跳过与分隔符模式匹配的任何输入,然后尝试返回下一个标记。 nextLine()方法返回当前行的剩余部分。

例如,如果输入是 "123\nplus\n" ,调用nextInt()将消耗 123 ,留下 \n等待中。

此时,调用next()将跳过\n ,然后消耗plus ,留下最后的\n在等待中。或者,调用 nextLine()将消耗 \n并返回一个空字符串作为行,留下 plus\n等待中。

答案,如果您想使用 nextLine()使用后next()nextInt() ,是插入一个额外的调用 nextLine()刷新剩下的换行符。

关于java - 当使用带有 next() 和 nextLine() 的扫描器读取 2 个看似相同的字符串时,为什么会得到 equals() == false ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17047326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com