【问题标题】:java, saving input in a for loopjava,将输入保存在for循环中
【发布时间】:2013-09-22 01:21:44
【问题描述】:

对于家庭作业,我想要求用户一次输入他的名字 1 个字符。我使用 for 循环不断要求他输入下一个字符。最后,我想显示整个名称,而不仅仅是给出的最后一个字母。我知道随着循环的进行,它会继续打印最后一个字母,因为lastName=lastName.substring(0,1);

如何保存输入的最后一个字母并用它构建一个字符串?那是我的问题

import java.util.Arrays;
import java.util.Scanner;

import javax.swing.JOptionPane;


public class onecharacter {


public static void main(String[] args) {


    for(int x=1; x>-1; x++){
    Scanner userInput = new Scanner( System.in );

    String lastName;
    if (x==1){
    System.out.println ("Please enter your last name, one character at a time.");
    }
    else 
        {System.out.println ("Next letter");}
    lastName= userInput.nextLine();
    //System.out.println (lastName.substring(0,1));
    lastName=lastName.substring(0,1);// only reading first character in string. 
    //In case someone puts more than 1 character in.
    int answer=
            JOptionPane.showConfirmDialog(null, "Are you finished?", "Click Yes or No:", JOptionPane.YES_NO_OPTION);
            if (answer== JOptionPane.YES_OPTION)
                {System.out.println ("You entered " +lastName); 


                System.exit(0);}



                else if (answer== JOptionPane.NO_OPTION);

                else
                    System.out.println ("This is Impossible");


    }


}

【问题讨论】:

    标签: java loops for-loop input save


    【解决方案1】:

    您需要再引入一个变量来读取该行。在您操作字符串时,也使用StringBuilder 将是一个好主意:

     StringBuilder lastName;
     String line;
        if (x==1){
        System.out.println ("Please enter your last name, one character at a time.");
        }
        else 
            {System.out.println ("Next letter");}
        line = userInput.nextLine();
        lastName.append(line.substring(0,1));
    

    如果StringBuilder 引入了一些问题,请修改其余代码

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 2018-05-24
      • 2019-10-24
      • 2018-11-13
      • 2010-12-13
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      相关资源
      最近更新 更多