2016-10-07 2 views
0

Я застрял на втором классе нижеприведенного кода. Вы можете взглянуть? Я получаю сообщение об ошибке «незаконный старт типа» для моего цикла while (true). Я не ищу совершенно другой способ сделать код, а больше - решение проблемы, которую у меня есть.Код Java с двумя классами

Вот проблема, которая была дана:

написать программу Java дисплеи государство птиц и цветов. Вы должны использовать свою среду IDE для этого упражнения. Вы также должны использовать классы Java в полной мере, чтобы включить несколько методов и как минимум два класса. Программа должна предложить пользователю ввести государство и распечатать как государственную птицу, так и цветок. Пользователь должен иметь возможность войти в состояние, не беспокоясь о случае. (например, пользователи могут входить в Мэриленд, Мэриленд, Мэриленд или любую другую возможную комбинацию символов нижнего и верхнего регистра. Государства могут также содержать пробелы в верхнем и нижнем пробелах. Совет. Храните информацию о состоянии в многомерном массиве. Программа должна продолжать запрашивать пользователю войти в состояние до «None» не будет введен. Вам нужно будет сделать некоторые исследования, чтобы найти государственные птицы и цветы.

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]; 
}} 
Смежные вопросы