2012-02-11 20 views
0

ユーザーにフルネーム入力を要求しています。フルネーム入力は最初の文字と2番目の名前を抽出します。私はまた、住所から住宅ユニット番号を抽出する予定の住所をユーザーに尋ねます。Cmdウィンドウがハングし、JOption showメッセージが表示されない

この計画では、ユーザーが次のように入力する予定です。住所:1234 Main St.
処理後、出力はJS1234になります。

最初の2つのダイアログボックス を正しくコンパイルして実行しますが、コマンドウィンドウがハングアップし、目的の出力の最後の showMessageDialogボックスが生成されません。私は実行を中断するためにCtrl + C する必要があります。私は に何かとStringBuilderを関与させる必要があると思うが、JOptionの使い方がわからない。最初の文字が空白でない場合

おかげで、

ジェレミー

import java.util.*; 
    import java.lang.*; 
    import javax.swing.*; 
    public class ConstructID 
    { 
      public static void main(String[] args) 
     { 
      String name; 
      String aInitial = ""; 
      String bInitial = ""; 
      String sAdd; 
      String unit = ""; 
      int i; 
      int j; 

      name = JOptionPane.showInputDialog(null, 
          "Please enter your full name. "); 
      sAdd = JOptionPane.showInputDialog(null, 
          "Please enter your street address. "); 

      i = 0; 
      while(i < name.length()) 
      { 
       if(name.charAt(i) == ' ') 
       { 
        aInitial = name.substring(0, i); 
        bInitial = name.substring(i + 1, name.length()); 
        i = name.length(); 
        ++i; 
       } 
      } 
      j = 0; 
      while(j < sAdd.length()) 
      { 
       if(sAdd.charAt(j) == ' ') 
       { 
        unit = sAdd.substring(0, j); 
        j = sAdd.length(); 
        ++j; 
       } 
      } 
      JOptionPane.showMessageDialog(null, "Your unique ID is " + 
         aInitial + bInitial + unit); 
     } 
    } 

答えて

1

あなたのwhileループは無限ループを引き起こしています。空白文字がないかぎり、ループカウンタをインクリメントすることはありません。

また、この種の解析では、String.split()を使用するかregexpを使用できます。

+0

私はまだString.split()またはregexpが何であるか分かりません... charAt()にある ''に基づいて無限ループの問題を解消するために、Stringという名前を2つに分けました:firstNameおよびsecondName。このようにして、1つの入力から文字に抽出することについて心配する必要はありません。しかし、空白文字を削除しても、私はまだハンギングターミナルが残っています。 – user1204262

関連する問題