2016-11-14 4 views
-4
public static void main(String[] args) { 
    // Create a new Scanner object to obtain 
    System.out.println("Please enter the word you are looking for"); 
    // input from System.in 
    Scanner input = new Scanner(System.in); 
    String userin = input.next(); 

私の目標は、それがintを表すものではありませんStringであることを保証するために、ユーザの入力を解析し、ループを記述することであることを確認してください。 intの場合、エラーメッセージを返すことを希望します。ユーザー入力=文字列、int型ではない

+1

_all_入力が文字列であることを行っています。それらは数字の入った文字列かもしれませんが、それでも文字列です。 –

+1

'input.next'は一連の文字を返します。したがって、定義によって常に 'String'です。 12345を入力すると、結果は「1」、「2」、「3」、「4」、「5」の5文字の文字列になります。少なくとも1つの文字(またはそのようなもの)が含まれていない限り、入力を禁止したい場合は、それを行うことができます。しかし、私は最初にタイプについての混乱を乗り越える必要があると思います。 – ajb

+0

ここでは説明が必要です.. input.next()はStringを取得します。しかし、どのように "int"を定義しますか?あなたはそれを "数値のみ"または "int"データ型としてJavaで定義しますか? – triForce420

答えて

-1

他の人は言っているように、すべての入力はStringになります。数字文字のみで構成される文字列を拒否する場合は、 "1234"の場合、文字列をループして各文字のisDigit()を呼び出すか、StringをparseIntに渡してNumberFormatExceptionをキャッチするなど、多少異なる方法で整数かどうかを調べることができます。

1
  1. 各入力はStringとなります。Stringは文字の数値シーケンスを表す場合もあります。
  2. 正規表現を使用して入力を検証できます。

次のコードは役立つはず:

String userin = input.next(); 
if (userin.matches("[0-9a-zA-Z]*[a-zA-Z]+[0-9a-zA-Z]*")) { 
    //input contains only small and large letters. At least one character. 
} else { 
    throw new RuntimeException("The input must be single word and mustn't contain digits only"); 
} 
関連する問題