本菜鸟今天写了一段代码,几经修改后发现还是有问题,如下:import java.util.*;public class TemperatureTransform{    public static void main(String[] args){
    
        Scanner keyboard=new Scanner(System.in);     System.out.println("Please enter a temperature in a correct form:");     String request=null;     int degrees;        String temperatureInput=keyboard.nextLine(); int lengthOfInput=temperatureInput.length();        String typeOfTemperature=temperatureInput.substring(lengthOfInput-1); String figuresOfTemperature=temperatureInput.substring(0,lengthOfInput-1); int degreesToCalculate=Integer.parseInt(figuresOfTemperature);     while(!(request.equalsIgnoreCase("Q"))){

    if(typeOfTemperature.equalsIgnoreCase("C")){

    degrees=(9*(degreesToCalculate)/5)+32;

}else if(typeOfTemperature.equalsIgnoreCase("F")){

    degrees=5*(degreesToCalculate-32)/9;

}else{

    System.out.println("Error!You must input a temperature in correct form with                                     'C'\\'c'\\'F'\\'f' behind:");                temperatureInput=keyboard.nextLine(); lengthOfInput=temperatureInput.length(); typeOfTemperature=temperatureInput.substring(lengthOfInput-1); figuresOfTemperature=temperatureInput.substring(0,lengthOfInput-1); degreesToCalculate=Integer.parseInt(figuresOfTemperature); if(typeOfTemperature.equalsIgnoreCase("C")){

        degrees=(9*(degreesToCalculate)/5)+32;

    }else if(typeOfTemperature.equalsIgnoreCase("F")){

        degrees=5*(degreesToCalculate-32)/9;

    } }            System.out.println("If you want to quit the calculation,please enter 'Q' or 'q', and if you                         want to continue,enter any button as you like:"); request=keyboard.nextLine();

}//while loop ends here.
    
    }//main method ends here.}//class ends here.在命令提示符里面,当询问:"Please enter a temperature in a correct form:"的时候会立刻报错,错误显示如下:Exception in thread "main" java.lang.NullPointerException
   at TemperagtureTransform.main(TemperatureTransform.java:25)请教各位高手,这是什么错误?怎么会出现这种错误?

解决方案 »

  1.   

    java.lang.NullPointerException 
    空指针异常
      

  2.   

    提示的错误,是空指针错误。
    但是我运行了,在输出“please .....:"后没有任何错误哦。
      

  3.   

    多明显啊,String request = null
      

  4.   

    不过呢,发现这里有点问题哦
    你先定义了String request=null; 
    然后有这样的判断: while(!(request.equalsIgnoreCase("Q"))){ 
    在上面两句语句之间,你没有给request进行操作,也就说说request是个空指针。这也是报错的地方。
      

  5.   

    你自己定义的  String request=null; 
    当程序执行到
    while(!(request.equalsIgnoreCase("Q"))){ 
    就会报 
    java.lang.NullPointerException 
      

  6.   

    request.equalsIgnoreCase()这句话,因为你的request是null所以报出了空值指针异常
      

  7.   

    CSDN上真是高手如云啊~~谢谢各位高手啦!!!!!!!!!
      

  8.   


    while (!(request.equalsIgnoreCase("Q"))) //request在刚开始的时候被设为null,所以执行到这里时会出错,可以把request = null;改为request = "";
      

  9.   

    不过呢,发现这里有点问题哦 
    你先定义了String request=null; 
    然后有这样的判断: while(!(request.equalsIgnoreCase("Q"))){ 
    在上面两句语句之间,你没有给request进行操作,也就说说request是个空指针。这也是报错的地方。