java - 如何在Java中将用户输入保存为字符串?
问题描述
我正在尝试用java制作一个基本的计算器只是为了练习。我知道为了将用户输入保存为整数,您必须执行以下操作:
int num1 = number1.nextInt();
但是,每当我尝试使用此代码对字符串执行此操作时:
char mathT = mathType.nextChar();
我得到一个错误。你如何将它保存为字符串?这是错误:
calculator.java:20: cannot find symbol
symbol : method nextChar()
location: class java.util.Scanner
char mathT = mathType.nextChar();
^
1 error
这是完整的代码:
import java.util.Scanner;
public class calculator
{
static Scanner mathType = new Scanner(System.in);
static Scanner number1 = new Scanner(System.in);
static Scanner number2 = new Scanner(System.in);
public static void main(String[] args)
{
System.out.println("Enter M, D, S, or A");
int num2 = number2.nextInt();
char mathT = mathType.nextChar();
int num1 = number1.nextInt();
if (mathT == 'M')
{
System.out.println(num1 * num2);
}
else if (mathT == 'D')
{
System.out.println(num1 / num2);
}
else if (mathT == 'A')
{
System.out.println(num1 + num2);
}
else if (mathT == 'S')
{
System.out.println(num1 - num2);
}
else
{
System.out.println("You did not enter a valid operation.");
}
}
}
解决方案
该类Scanner
没有nextChar()
方法。相反,您可以这样做:
char mathT = mathType.next().charAt(0);
它将获取下一个完整令牌的第一个字符并将其分配给mathT
.
Scanner
此外,不能读取多个对象System.in
推荐阅读
- javascript - 来自 event.preventDefault() 和 event.stopPropagation() 的 Firebase 身份验证网络错误?
- doctrine - 如何构建动态学说查询?
- kotlin - mockK 不能区分每个语句中的类型
- mongodb - 如何根据mongodb聚合中数组内的另一个字段有条件地将值设置为父字段?
- java - MacOs Catalina 10.15.5 崩溃并且报告没有给出任何线索
- swift - 带有 SwiftUI 的 tvOS 上的 NavigationLink 按钮不起作用
- autodesk-forge - 如何从 Autodesk Forge Viewer 打开 PDF 的缓冲区数据
- multithreading - 哪些用例适合 Kotlin 中的 Dispatchers.Default?
- sql - 连接多个小表时,如何提高 Snowflake 中 SQL 查询的性能?
- javascript - 如何从下拉列表中删除不需要的选项值?