2016-10-07 4 views
0

私は下のコードの2番目のクラスに固執しています。あなたは見てみることができますか? "while(true)"ループのエラーメッセージ "タイプの違法な開始"が表示されます。私はコードを行うための全く別の方法を探しているわけではありません。 2つのクラスを持つJavaコード

は、Javaプログラムに表示されている状態の鳥と花を書く:

は、ここで与えられた問題です。この演習では、IDEを使用する必要があります。また、複数のメソッドと少なくとも2つのクラスを含めるには、Javaクラスを完全に使用する必要があります。プログラムは、状態を入力し、状態の鳥と花の両方を印刷するようにユーザーに求める必要があります。ユーザーは大文字小文字を気にせずに状態に入ることができます。 (例えば、ユーザはメリーランド、メアリランド、MARYLAND、その他の可能な大文字と小文字の組み合わせを入力することができます)ヒント:状態情報を多次元配列に格納します。 「なし」が入力されないまで。あなたは州の鳥や花を見つけるために、いくつかの研究を行う必要があります状態を入力するユーザー。

public class State4 { 

    private String state [][] = { 
     {"ALABAMA","Nothern Flicker","Camellia"}, 
     {"ALASKA","Willow Ptarmigan","Forget-me-not"}, 
     {"ARIZONA","Cactus Wren","Saguaro Cactus Blossom"}, 
     {"ARKANSAS","Mockingbird","Apple Blossom"}, 
     {"CALIFORNIA","California Quail","California Poppy"}, 
     {"COLORADO","Lark Bunting","Rocky Mountain Columbine"}, 
     {"CONNECTICUT","American Robin","Mountain Laurel"}, 
     {"DELAWARE","Blue Hen","Peach Blossom"}, 
     {"FLORIDA","Northern Mockingbird","Orange Blossom"}, 
     {"GEORGIA","Brown Thrasher","Azalea"}, 
     {"HAWAII","Hawaiian Goose","Hawaiian Hibiscus"}, 
     {"IDAHO","Mountain Bluebird","Mock Oragnge"}, 
     {"ILLINOIS","Northern Cardinal","Violet"}, 
     {"INDIANA","Cardinal","Peony"}, 
     {"IOWA","Eastern Goldfinch","Iowa"}, 
     {"KANSAS","Western Meadowlark","Sunflower"}, 
     {"KENTUCKY","Northern Cardinal","Goldenrod"}, 
     {"LOUISIANA","Brown Pelican","Magnolia"}, 
     {"MAINE","Black-capped Chickadee","White Pine Cone and Tassel"}, 
     {"MARYLAND","Baltimore Oriole","Black-eyed Susan"}, 
     {"MASSACHUSETTS","Black-capped Chickadee","Mayflower"}, 
     {"MICHIGAN","American Robin","Apple Blossom"}, 
     {"MISSISSIPPI","Northern Mockingbird","Magnolia"}, 
     {"MISSOURI","Eastern Bluebird","Hawthorn (flower)"}, 
     {"MONTANA","Western Meadowlark","Bitterroot"}, 
     {"NEBRASKA","Western Meadowlark","Goldenrod"}, 
     {"NEVADA","Mountain Bluebird","Sagebrush"}, 
     {"NEW HAMPSHIRE","Purple Finch","Purple Lilac"}, 
     {"NEW JERSEY","Eastern Goldfinch","Violet"}, 
     {"NEW MEXICO","Roadruner","Yucca Flower"}, 
     {"NEW YORK","Eastern Bluebird","Rose"}, 
     {"NORTH CAROLINA","Northern Cardinal","Flowering Dogwood"}, 
     {"NORTH DAKOTA","Western Meadowlark","Wild Prairie Rose"}, 
     {"OHIO","Northern Cardinal","Scarlet Carnation"}, 
     {"OKLAHOMA","Scissor-tailed Flycatcher","Oklahoma Rose"}, 
     {"OREGON","Western Meadowlark","Oregon Grape"}, 
     {"RHODE ISLAND","Rhode Island Red","Violet"}, 
     {"SOUTH CAROLINA","Carolina Wren","Yellow Jessamine"}, 
     {"SOUTH DAKOTA","Ring-necked Pheasant","Pasque Flower"}, 
     {"TENNESSEE","Nothern Mockingbird","Iris"}, 
     {"TEXAS","Northern Mockingbird","Bluebonnet"}, 
     {"UTAH","California Gull","Sego Lily"}, 
     {"VERMONT","Hermit Thrush","Red Clover"}, 
     {"VIRGINIA","Northern Cardinal","American Dogwood"}, 
     {"WASHINGTON","Willow Goldfinch","Coast Rhodedendron"}, 
     {"WEST VIRGINIA","Northern Cardinal","Rhodedendrom"}, 
     {"WISCONSIN","American Robin","Wood Violet"}, 
     {"WYONMING","Western Meadolark","Indian Paintbrush"}, 
    }; 

    public State4(){ 

    } 
    public String[][] getState() { 
     return state; 
    } 
    public void setState(String[][] state) { 
     this.state = state; 
    } 


} 

//ここでは、あなたの質問のための第二のクラス

import java.util.Scanner; 

public class TestState4 { 
    public static void main(String[] args){ 

    int position = -1; 
    boolean found = false; 

    //Negating Case Sensitivity 
    //same length and corresponding characters in the two strings are equal ignoring case 
    for(int i=0;i<state4.length && !found;i++){ 
     if(states4[i][0].equalsIgnoreCase(state)) 
      position=i; 
     } 
    return position; 
    } 

    Scanner input = new Scanner(System.in); 
    state4 inform = new state4(); 
    String states[][] =inform.getState(); 

    while(true){ 
     System.out.println("Enter a State or 'None' to exit:"); 
     String state = input.next(); 

     if(state.equalsIgnoreCase("None")){ 
      System.exit(0); 
     } 
    else{ 
     int position = getInfo(stateData, stateName); 
     if(position != -1){ 
      System.out.println("Bird: " + stateData[position][1]); 
      System.out.println("Flower: " + stateData[position][2] + "\n\n"); 
     } 
    else{ 
     System.out.println("Please try again, an invalid State was entered."); 
     } 
    } 
    } 
} 
+0

'main'関数の中カッコの開閉を確認してください。 – yole

+2

私はそれが 'state4'ではなく' State4'であるべきだと思います。 Javaは大文字と小文字を区別例: 'State4 inform = new State4();' – Titus

+0

また、最初の 'for'ループでは、そのクラスのどこにでも宣言されていないような' state4'と 'states4'という変数を使用しています。 – Titus

答えて

0

です、おそらくここに

for(int i=0;i<state4.length && !found;i++) { 
    if(states4[i][0].equalsIgnoreCase(state)) 
     position=i; 
    } 

    return position; 
} 
+0

コードを適切にフォーマットする –

0

あなたはそれが(input.next使用しないことはできません)、あなたはinput.nextLine()すべき状態のいくつかは、以下の2つの単語が含まれているので、あなたの要求に基づくソリューションは、これは

public class TestState4 { 
public static void main(String[] args) { 
    State4 inform = new State4(); 
    String states[][] = inform.getState(); 
    Scanner input = new Scanner(System.in); 

    while (true) { 
     System.out.println("Enter a State or 'None' to exit:"); 

     String state = input.nextLine(); 

     if (state.trim().equalsIgnoreCase("None")) { 
      break; 
     } else { 
      int index = getStateIndex(state, states); 
      if (index != -1) { 
       System.out.printf("Bird: %s \nFlower: %s \n", 
         getBird(index, states), getFlower(index, states)); 
      } else { 
       System.out 
         .println("Please try again, an invalid State was entered."); 
      } 
     } 
    } 
    input.close(); 
} 

private static int getStateIndex(String state, String[][] states) { 
    for (int i = 0; i < states.length; i++) { 
     if (state.trim().equalsIgnoreCase(states[i][0])) { 
      return i; 
     } 
    } 
    return -1; 
} 

private static String getBird(int index, String[][] states) { 
    return states[index][1]; 
} 

private static String getFlower(int index, String[][] states) { 
    return states[index][2]; 
}} 
を助けることを願っています
関連する問題