首页 > 解决方案 > 我无法在我的代码中打印出字母?如果我从圆括号中删除 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

解决方案


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 ScannerSystem.in您将无法在程序的其余运行时使用 System.in。


推荐阅读