如何在 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));
我正在尝试制作一个计算器,所以我有这个 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));