2013-09-22 136 views
1

作业我想要求用户每次输入他的名字1个字符。我使用for循环来不断要求他输入下一个字符。最后,我想显示整个名称,而不仅仅是给出的最后一个字母。我知道随着循环四处走动它将继续打印出最后一个字母,因为lastName=lastName.substring(0,1);java,在for循环中保存输入

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

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"); 


    } 


} 

回答

2

您需要引入一个变量来读取该行。还使用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介绍了一些问题

+0

得到它的工作,谢谢 –