2017-10-26 27 views
0

このメソッドの目的は、たとえば、ユーザーが最初の文字 'J'を入力してstring1に入力するように求められたときに 'John Tom'を入力することです。スペースのインデックスを見つけ、 'Tom'という文字列をstring2に追加し、string1とstring2を一緒に追加して、username = JTomなどのスペースを持たない他の名前であれば、スペースのインデックスをposに格納します。したがって、string1とstring2を結合するだけでなく、スペースを削除し、変数 'pos'にインデックスを保持します。誰かが私のために必要なコードやコードを改善することができたらすばらしいでしょう。基本的なJava文字列最初の文字を使用して空白を削除する

public static void main(String[] args) { 
    String user;//user variable 
    System.out.println("Please enter a name: "); 
    Scanner scan = new Scanner(System.in); // Reading from System.in 
    user = scan.nextLine();//user input for name 
    create_name(user);//calls create_name method 
} 

public static void create_name(String user) { 
    String String2; 
    int pos = 0; 
    pos = user.indexOf(' '); 
    String string1 = String.valueOf(user.charAt(0));// 
    System.out.println(string1); 
    System.out.println(pos); 




} 
} 

答えて

1

の代わりに:

System.out.println(string1); 

用途:

System.out.println(string1 + user.substring(pos + 1)); 
1

あなたは、単に行うことができます。

String result = string1+ user.substring(pos + 1); 
System.out.println(result); 

更新: cが存在する場合ユーザーが1つのまたは複数のミドルネームを持っていますアーゼは、私がどうなる:おそらく最も効率的な方法だろう、ここで

String result1 = string1 + user.substring(user.lastIndexOf(' ') + 1); 
System.out.println(result1); 
+0

は、ユーザは、例えばジョン・トム・ジョーンズのための3名を入力した場合、それが唯一の「JTom」を取る代わりに、「JTomジョーンズのこれが可能であるだろうか? – 1230

+0

更新された回答を確認してください... –

0

他の回答を、しかし、あなたでし配列に「トムから「ジョン」を交互に独立し、その後それに応じてトリミング:

String name = "John Tom"; 
String[] splitName = name.split(" "); 
System.out.println(splitName[0].charAt(0) + splitName[1]);