如何将其他方法中的字符串调用到main方法中



你好我是java新手,需要有人来回答我遇到的问题。我最近开始了一个用Java制作计算器的项目。然而,我的代码有一个问题。基本上,我不能从方法中调用字符串。我试过各种各样的方法来解决这个问题,但都无济于事这是代码:

package CalculatorCore;
import java.util.Scanner;
public class calculations {
static void firstNumber() {
Scanner firstNum = new Scanner(System.in);
System.out.print("First Number: ");
String n1 = firstNum.next(); //You can see, i put the string in a method
}
static void secondNumber() {
Scanner secondNum = new Scanner(System.in);
System.out.print("Second Number: ");
String n2 = secondNum.next(); //Here too

}

public static void main(String[] args) {



System.out.println("Please Choose one of the following equasions: +, -, * or /");
System.out.println("");
System.out.println("");
mathEquasions();



}

static void mathEquasions() {
Scanner equasions = new Scanner(System.in);
System.out.print("Enter input: ");
String e = equasions.next();

if (e.equals("+")) {
System.out.println("");
System.out.println("Please enter the first number that you want to add");
firstNumber();
System.out.println("");
System.out.println("Now add the second number");
secondNumber();
var plusAnswer = (n1 + n2);  /*The problem is situated here, i need to call the 
strings from another class*/

System.out.println("");
System.out.println("");
System.out.println("Your answer is...");
firstNumber();.n1



}



}

我已经使用了使用户输入紧凑的方法,所以如果没有其他方法,我应该删除这些方法吗?

您需要返回在两个方法中检索到的数字。不要忘记使用nextInt:将它们解析为整数

public class calculations {
static int firstNumber() {
Scanner firstNum = new Scanner(System.in);
System.out.print("First Number: ");
int n1 = firstNum.nextInt();
return n1;
}
static int secondNumber() {
Scanner secondNum = new Scanner(System.in);
System.out.print("Second Number: ");
int n2 = secondNum.nextInt();
return n2;
}
}

然后,当调用firstNumbersecondNumber时,创建新的变量来存储它们的返回值:

public class calculations {
static void mathEquasions() {
Scanner equasions = new Scanner(System.in);
System.out.print("Enter input: ");
String e = equasions.next();

if (e.equals("+")) {
System.out.println("");
System.out.println("Please enter the first number that you want to add");
int n1 = firstNumber();
System.out.println("");
System.out.println("Now add the second number");
int n2 = secondNumber();
var plusAnswer = (n1 + n2);

System.out.println("");
System.out.println("");
System.out.println("Your answer is...");
}
}
}

欢迎加入SO!当你第一次尝试某件事时,最好尽可能简单,然后逐渐使用更复杂的技术。

在这种情况下,所有的东西都已经在一个类中了,所以作为第一步,您可以尝试将所有代码放回main method中。

public static void main(String[] args) {
//All your code can come here first in the order they are supposed to to be called.
}

作为第二步,当一切正常时,您可以将重复代码的部分提取到单独的方法中。就像这里一样,你可以只拥有一个firstNumber()secondNumber(),比如:

static int getNumber() {
Scanner scanner = new Scanner(System.in);
System.out.print("Number: ");
int number = scanner.nextInt();
return number;
}

你可以调用相同的方法来获得两个号码:

public static void main(String[] args) {
//...
System.out.println("Please enter the first number that you want to add");
int n1 = getNumber(); // Using the same method for both

System.out.println("");
System.out.println("Now add the second number");
int n2 = getNumber(); // Using the same method for both
//...
}

在实践中学习并深入其中是最好的学习方式之一。免费提供大量优质材料(例如yt),它们确实可以提高你的技能。这也是我开始学习的原因,祝你好运!