java - 我无法在我的代码中打印出字母?如果我从圆括号中删除 0 代码将不会运行
问题描述
所以这个问题就是让用户输入产品id,名称,存货多少,从店里买多少。代码中的所有内容都可以正常工作,但是当我输入名称的字母时,只显示第一个字母。
import java.util.Scanner;
public class ProductStock {
public static void main(String[] args) {
{
Scanner sc = new Scanner(System.in);
int id = sc.nextInt();
char name = sc.next().charAt(0);
int stock = sc.nextInt();
int sold = sc.nextInt();
sc.close();
System.out.print(id + " " + name + " " + stock + " " + sold);
}
}
}
解决方案
Java 中的Achar
表示单个字符。要拥有一系列字符,您应该使用String
. 在您的代码段中使用charAt(0)
时,您只需要输入名称的第一个字符,但您希望保留整个字符串。通过调用next()
扫描仪,你实际上得到了 aString
作为返回值,所以没有什么可做的了。
固定示例应如下所示:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int id = sc.nextInt();
String name = sc.next();
int stock = sc.nextInt();
int sold = sc.nextInt();
System.out.print(id + " " + name + " " + stock + " " + sold);
sc.close();
}
请注意:一旦您应该意识到调用close()
using Scanner
,System.in
您将无法在程序的其余运行时使用 System.in。
推荐阅读
- r - 在 for 循环中填充向量时遇到问题
- latex - 多行MathJax的左对齐行
- xml - 为什么 Powershell 会输出不需要的调试字符串?
- java - SonarQube Maven Java 无法执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar
- numpy - 如何将包含积分和导数的 sympy 表达式转换为 numpy
- java - 如何使用 i18 消息处理自定义异常
- r - survfit 数据框中的错误消息以在 R 中生成生存图
- python-3.x - 如何使用 WMIC 和 Powershell 定位可执行路径
- python - 为什么使用 tesfile 执行 doctest 找不到在同一文件上定义的函数?
- javascript - API:基于推文的 Spotify 音乐推荐,需要 word2vec 还是 doc2vec?