当前位置: 首页 > 知识库问答 >
问题:

Java-字符串输入不显示下一行代码[重复]

谷梁宜
2023-03-14

正如您在下面的代码中所看到的,当我键入“”时,我希望执行下面的代码行,但实际上并非如此。它不断重复代码“系统”。出来println(“\n请输入一个操作(,-,/,*,=或Q以退出):”;”。这里怎么了?

import java.util.Scanner;

public class FractionCalculator {
    public static Scanner input = new Scanner(System.in);

    public static void main(String[] args) {
        intro();
        getOperation();
    }

    public static void intro() {
        System.out.println("\nThis program is a fraction calculator");
        System.out.println("It will add, subtract, multiply and divide fractions until you type Q to quit.");
        System.out.println("Please enter your fraction in the form a/b, where a and b are integers.");
        for (int i=0; i<80; i++) {
            System.out.print("-");
        }
    }

    public static String getOperation() {
        System.out.println("\nPlease enter an operation (+, -, /, *, = or Q to quit): ");
        Scanner input = new Scanner(System.in);
        String operation = input.nextLine();

        if (operation == "+") {
            System.out.println("Please enter a fraction (a/b) or integer (a): ");
            String add = input.nextLine();
        }
        return getOperation();
    }
}

共有1个答案

艾安和
2023-03-14

如果(operation==”){不起作用。您将不得不执行operation.equals(“”)。

这是因为==将比较对象引用,因为字符串是非基本类型。因此,它将执行类似于String@3245 == String@3456这不是真的。改为执行等于将对内容进行比较。

 类似资料:
  • 我试图写一个快速的程序,在输入的字符串中计数空格的数量。这是我到目前为止所拥有的: while循环首先使用s.indexOf(“”)查找字符串s中的第一个空格,将其替换为char Z,然后将值SpaceCount加1。此过程重复,直到s.indexOf没有找到空白,导致i为-1,从而停止循环。 换句话说,每次找到空白时,SpaceCount都会增加1,然后向用户显示空白的总数。或者应该是... 问

  • 我已经做了这个程序,我被卡住了。当我运行它时,我的输入没有使用空格,它工作得很好,例如,在customer input中只输入。但是,当我输入时,它会合并接下来的两个字符串输入方向(如所附的pic所示)。我在这里做错了什么?

  • 当用户输入字符串(例如“”)时,程序应该给出输出“”,然后提示用户键入有效输入。当我键入字符串时,我会在线程“main”java.util.InputMismatchException中得到错误消息

  • 嗨,我的代码有一些问题,我需要接受一个3行的输入,并计算输入中“$”的数量。输入方法未注释为“scanf(”%[]s“,&userinput);”是唯一一个我发现采取所有3行输入,但我不能打破输入循环继续我的程序。 任何帮助都将不胜感激

  • 您好,我正在尝试将excel表数据保存到MySQL数据库中。为此,我使用Apache Poi。我在Apache Poi中使用DataForcat获取单元格值。我成功地将单元格值作为字符串格式获取,但我试图将字符串值更改为Long我正在获取NumberFormatException。我正在尝试下面的代码。请尝试解决我的问题。 非常感谢。 这是控制台中的错误堆栈跟踪。

  • 我是一个绝对的初学者,没有任何编程语言的经验。 我写了一个程序作为将阿拉伯数字转换成罗马数字的练习。它起作用了。然而,如果输入的是字符串而不是整数,我想添加一部分来处理这个问题。我不知道该怎么做。我试图使用try/catch,但我不知道如何正确使用它。现在程序要求我输入两次数字。怎么办? 以下是他的主要方法: