1

宿題のために、一度に 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");


    }


}
4

1 に答える 1

2

行を読み取るには、もう 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問題が発生した場合は、残りのコードを変更します

于 2013-09-22T01:25:10.070 に答える