如何在 Java 中将 char 放入 setter

How to put char in setter in Java

我正在尝试制作一个计算器,所以我有这个 Calculator.java 和 CalculatorTest.java 使用 setter 和 getter。

public class Calculator {
  
    private int a;
  
    public int getA() {
      return a;
    }
    
    public void setA(int calcOneA) {
       this.a = calcOneA;
    }
  
    private int b;
    
    public int getB() {
      return b;
    }
    
    public void setB(int calcOneB) {
       this.b = calcOneB;
    }
        
    private char sign;
  
    public char getSign() {
      return sign;
    }
    
    public void setSign(char calcOneSign) {
        this.sign = calcOneSign;     
    }
}
import java.util.Scanner;

public class CalculatorTest {

    public static void main(String[] args) {
        Calculator calcOne = new Calculator();
        Scanner scanner = new Scanner(System.in);
        System.out.println("Введите первое число");
        calcOne.setA(scanner.nextInt());
        System.out.println("Введите знак математической операции");
        calcOne.setSign(nextLine());
        System.out.println("Введите второе число");
        calcOne.setB(scanner.nextInt());
      }
}

我不知道如何将数学符号放入 calcOne.setSign()。我试过 nextLine() 但它说找不到符号。

您的问题不在于 setter。

例如,您可以单独调用calcOne.setSign('a');

现在,要重现用户输入的内容,您需要修复扫描仪的使用,例如

calcOne.setSign(scanner.nextLine().charAt(0));

但是,如果您键入 2 + 2 之类的内容,则 + 称为运算符,它并不总是字符串中的特定索引(如果您在其自己的行中键入它, 可能没问题)

nextLine() returns 一个字符串,所以必须提取第一个字符:

String s = scanner.nextLine();
// check that s has one and only one character.
calcOne.setSign(s.charAt(0));