2016-05-24 6 views
0

私は新しいJavaプログラマです。私の下のコードでは、john smithのような従業員名を入力しようとしていますが、johnのみが出力されています。私はスキャナクラスを使用した入力

System.out.print("Enter SEX: ");  
char SEX = s.next().charAt(0); 

System.out.print("Enter Employee Name: "); 
String employeeName = s.next(); 

を入れ とIF出力のコードのこの作品は、私のemployeename値を求めていません。残りの値を直接印刷することができます。

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 
**package cs480; 
import java.util.Scanner; 
public class CS480D1_Richa_2_Week2 { 
    public static void main(String [] args){ 
    Scanner s=new Scanner(System.in); 
    System.out.print("Ente Employee ID: "); 
    int employeeId = s.nextInt(); 
    System.out.print("Ente SEX: ");  
    char SEX = s.next().charAt(0); 
    System.out.print("Ente Employee Name: "); 
    String employeeName = s.next(); 
    System.out.println("Employee ID is " +employeeId); 
    System.out.println("Employee Name is " +employeeName); 
    System.out.println("Employee gender is " +SEX); 
    }   

}** 
+1

を使用して区切りをリセットするのいずれか右の 'Related'セクションを確認してください。あなたはあなたの答えを得るでしょう –

答えて

0

これを試してください使用する区切り文字を上書きすることができます。

public static void main(String[] args) { 

    Scanner s = new Scanner(System.in); 
    System.out.print("Ente Employee ID: "); 
    int employeeId = s.nextInt(); 
    System.out.print("Ente SEX: "); 
    char SEX = s.next().charAt(0); 
    System.out.print("Ente Employee Name: "); 
    String employeeName = s.nextLine(); 
    employeeName = s.nextLine();// Try to add this line of code 
    System.out.println("Employee ID is " + employeeId); 
    System.out.println("Employee Name is " + employeeName); 
    System.out.println("Employee gender is " + SEX); 

} 
+0

こんにちはエリカ、それは期待どおりに動作しています今、ありがとうございました。私はちょうど文字列を使用していたときemployeeName = s.nextLine();それは動作していませんでした。なぜあなたはその行を追加しましたか? – Learn

+0

つまり、char SEX = s.next()。charAt(0);という意味です。コマンドはchar値のみを読み込みます。その行の後に、s.nextLine()を読み込む必要があります。 '\ n' Enterキーを実行します。その後、employeeName = s.nextLine();このコードはemployeeNameのユーザー入力を読み取ります。次のようにコードをクリアすることもできます:s.nextLine(); String employeeName = s.nextLine(); –

0

あなたのコード

文字列をemployeeName = scanner.nextLine()交換してみてください。

代わり

ストリングemployeeName = scanner.next()。

next()はスペースまで入力を読み取ることができます。スペースで区切られた2つの単語を読むことはできません。また、next()は、入力を読み込んだ後に同じ行にカーソルを置きます。

nextLine()は、単語間のスペースを含む入力を読み取ります(つまり、行の最後まで読み込みます)。入力が読み込まれると、nextLine()はカーソルを次の行に配置します。

0

どちらかあなたは

scanner.nextLine() 

を使用するか、次の()

scanner.useDelimiter("\n"); 
scanner.next(); 
0

Scanner.next()は空白区切り文字を使用しています(空白の前に要素を取ります)。

ので

Scanner.nextLine() 

を使用するか、

Scanner s = new Scanner(input).useDelimiter("\\s*"your delimiter"\\s*"); 
関連する問題