0

私は Java プログラミングの初心者で、名前をアルファベット順に並べ替えるプログラムを作成中です。ifアルファベット文字のみを受け入れるように" " ステートメントをコーディングするにはどうすればよいですか? 私のコードには " if (in.hasNext() != String)" がありますが、これは明らかに間違っていますが、今は何かを試しています。これが私のコードです。

import java.util.*;

public class AlphaOrder
{
    public static void main(String[] args)
    {
        ArrayList<String> names = new ArrayList<String>();

        System.out.println("Enter a name, enter \"Sort\" to sort the names alphabetically, enter \"Quit\" to end: ");
        Scanner in = new Scanner(System.in);

        while (in.hasNext())
        {
            names.add(in.next());

            if (in.hasNext("Sort"))
            {
                System.out.println("The names in alphabetical order are: " + names);
            }   
            if (in.hasNext("Quit"))
            {
                System.out.println("This Program has stopped.");
            }
            if (in.hasNext() != String)
            {
                System.out.println("Please enter only alphabetical characters.");
            }                       
        }       
    }
}   
4

1 に答える 1

0

1) ロジックを少し変更したい場合:

import java.util.*;

public class AlphaOrder
{
  public static void main(String[] args) {
    ArrayList<String> names = new ArrayList<String>();

    System.out.println("Enter a name, enter \"Sort\" to sort the names alphabetically, enter \"Quit\" to end: ");
    Scanner in = new Scanner(System.in);

    while (in.hasNext()) {
      String sLine = in.next ();
      if (sLine.equals ("Sort")) {
        System.out.println("The names in alphabetical order are: " + names);
        doSort ();
      }
      if (sLine.equals ("Sort")) {
        System.out.println("This Program has stopped.");
        doExit ();
      }
      if (!isAlpha (sLine)) {
         System.out.println("Please enter only alphabetical characters.");
         continue;
      }
      names.add(sLine);
    }
  }
}

2) "isAlpha()" をチェックする方法はたくさんあります。私は「正規表現」を見ます:

http://www.vogella.com/articles/JavaRegularExpressions/article.html

3) 「単純な」実装の 1 つを次に示します。

boolean isAlpha (String s)
{
  String s2 = s.toUpperCase();

  for (int i = 0; i < s2.length(); i ++) {
    if (s2.charAt(i) < 'A' || s2.charAt(i) > 'Z')
      return false;
  }
  return true;
}
于 2013-03-27T18:30:33.790 に答える