Java代码w /两个类

时间:2016-10-07 10:43:55

标签: java class

我被困在下面代码的第二类。你能看看吗?我收到错误消息,“非法启动类型”为我的“while(true)”循环。我不是在寻找一种完全不同的方式来编写代码,而是解决我遇到的问题。

这是给出的问题:

编写一个Java程序,显示State bird and flower。您应该使用IDE进行此练习。您还应该完全使用Java类来包含多个方法和至少两个类。该程序应提示用户进入州并打印州鸟和花。用户应该能够进入一个州而不必担心案件。 (例如,用户可以输入马里兰州,马里兰州,马里兰州或任何其他可能的小写和大写字符组合。状态也可能包含前导和尾随空格。提示:将状态信息存储在多维数组中。程序应继续提示用户输入状态直到输入“无”。你需要做一些研究才能找到州鸟和花。

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.");
        }
    }
    }
}

2 个答案:

答案 0 :(得分:0)

您的问题,可能在这里

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

    return position;
} 

答案 1 :(得分:0)

你不能使用input.next(),你应该输入.nextLine()因为某些状态包含2个单词,下面是基于你的请求的解决方案,希望这可以帮助

java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer