首页 > 解决方案 > 为什么我的代码没有读取 java 中的第一个字符串输入?

问题描述

public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter two numbers: ");
    int a = sc.nextInt();
    int b = sc.nextInt();
    System.out.println("Enter two decimal numbers: ");
    float x = sc.nextFloat();
    float y = sc.nextFloat();
    System.out.println("Enter two words: ");
    String i = sc.nextLine();
    String j = sc.nextLine();
    //System.out.println(i);
    //System.out.println(j);
    System.out.println(max(a,b));
    System.out.println(max(x,y));
    System.out.println(max(i,j));
}

我仍在学习java,我尝试删除“Line”并将我的两个单词输入写在由空格分隔的同一行中并且它有效但是有人可以解释为什么“nextLine”跳过第一个字符串输入,即使它执行两个整数和两个浮动?

标签: javastringinput

解决方案


这似乎对我有用。当打印你的值时你有逗号,在Java中你需要把加法符号为了将两个值加在一起,我还必须在中间添加一个字符串以确保程序没有添加数值,我只将其添加到最后一个打印行中,以使输出看起来更好。我将 .nextline() 更改为只能输入单个单词的 .next() 。

 import java.util.Scanner;
    public class Test {
        public static void main(String[] args){
                Scanner sc = new Scanner(System.in);
                System.out.println("Enter two numbers: ");
                int a = sc.nextInt();
                int b = sc.nextInt();
                System.out.println("Enter two decimal numbers: ");
                float x = sc.nextFloat();
                float y = sc.nextFloat();
                System.out.println("Enter two words: ");
                String i = sc.next();
                String j = sc.next();
                //System.out.println(i);
                //System.out.println(j);
                System.out.println(a + " : " + b);
                System.out.println(x + " : " + y);
                System.out.println(i + " : " + j);
            }}

推荐阅读