0

For my project I need to input a first and last name with no numbers but I simply can't find anything online. If you could help, that would be terrific.

Also if you have the time, I need to flip the first and last name with a comma when the user inputs them.

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;

    public class PhoneListr {

public static void main (String[] args) throws IOException {
    String firstName;
    String lastName;
    System.out.println ("Please enter your first name:");
    firstName = PhoneList ("");
    System.out.println ("Please enter your last name:");
    lastName = PhoneList ("");
    System.out.println ("Your full name is: " + lastName + "," + firstName);
}

public static String PhoneList (String input) throws IOException {
    boolean continueInput = false;

    while (continueInput == false) {

            BufferedReader bufferedReader = new BufferedReader (new InputStreamReader (System.in));
            input = bufferedReader.readLine();
            continueInput = true;

            if(input.matches("[a-zA-Z]+")) {
                continueInput = true;
                    }
                  else {
                 System.out.println ("Error, you may only use the alphabet");
                 continueInput = false;
        }
    }
    return input;
}

}

4

5 に答える 5

4

String.matches(regex)を使用します。

    if(input.matches("[a-zA-Z]+")) {
     System.out.println("your input contains no numerics");
        }
      else {
     System.out.println("only alphabets allowed");
}

上記の正規表現は、a から z、または A から Z まで (範囲) をチェックします。

于 2012-11-04T18:55:36.547 に答える
1

OPの問題と説明に基づいて、いくつかの提案があります。

Chaitanya ソリューションは、アルファベットのみのチェックを完全に処理します。

問題の無視された領域について:

firstName私はあなたに2つの変数を作ることをお勧めしlastNameますmain()

String firstName;
String lastName;

メソッドの戻り値の型を次のように変更phoneList()しますString

メソッド内で入力された名前inputを返し(実際に番号を返す理由はわかりません)、それを and の中に保存しますnumberphoneListfirstNamelastName

System.out.println ("Please enter your first name:");
firstName = PhoneList (0);
System.out.println ("Please input your last name:");
lastNamr =PhoneList (0);

「コンマ形式」で印刷するには、次を使用します

  System.out.println("full name is: " +lastName+ "," +firstName);

あなたのプログラムをもう一度読むと、めちゃくちゃです!!

方法についてphoneList()

  1. regex 条件を使用して continueInput を true/flase に設定し、execptions を悪用しないようにします。

Ps「編集」して投稿していただければ幸いです。他のメンバーが上記の間違いを見つけた場合、モバイルを使用している場合、書式設定について不明な点がある場合など。ありがとうございます。:-) (はい)

于 2012-11-04T19:18:59.107 に答える
1

このタイプの文字列マッチングでは、正規表現または「RegEx」を使用する必要があります。カバーするのは非常に大きなトピックですが、ここで紹介します。RegEx は、文字列が特定の条件に一致するかどうかをテストしたり、その文字列から特定のパターンを取り出したり、それらのパターンに一致する特定の部分を別のものに置き換えたりするために使用されるツールです。

入力に数字が含まれているかどうかをテストするために RegEx を使用する例を次に示します。

if(input.matches("\\d")) {
 // matched a digit, do something
}
于 2012-11-04T19:03:01.190 に答える
0

使用することもできます

if(input.matches("[^0-9]"))
{
System.out.println("Don't input numbers!");
continueInput = false;}

2番目の質問が何を求めているのか理解できません。あなたの2番目の質問から私が得た答えはこのようなものです。メイン関数で、次のようにコードを変更します

String first_name = null;
String last_name = null;
System.out.println ("Please enter your first name:");
first_name = PhoneList();
System.out.println ("Please input your last name:");
second_name = PhoneList();
System.out.println (second_name+","+first_name);

次に、PhoneList関数の最後の行を次のように変更する必要があります

return input;

リンクを確認してください。詳細については

于 2012-11-04T19:20:52.947 に答える
-1

メソッドStringUtils.isNumericに引数を渡すことで、チェックを追加できます。

入力された文字列が数値の場合、これは true を返します

于 2012-11-04T19:02:04.017 に答える