想问下这个代码哪里错了,为什么一直出现NullPointerException异常呢? - 爱问答

(爱问答)

想问下这个代码哪里错了,为什么一直出现NullPointerException异常呢?

 

package MyThread;

import java.util.Scanner;

public class Checkmajuscule extends Thread {

    public  String s;

    public Checkmajuscule(){}

    public Checkmajuscule(String name){

        super(name);

 

    }

    public  void run(){

        while(true){

            for(int i = 0;i<s.length();i++){

                char c = s.charAt(i);

                if(c>=65&&c<=90){

                    System.out.println(c+"------>");

                    c+=32;

                    System.out.println(c);

                }

            }

            s="";

            try{

                Thread.sleep(1);

            }catch(Exception e){}

        }

    }

    public static void main(String[]args){

        Checkmajuscule chk = new Checkmajuscule();

        Thread t = new Thread(chk);

        t.start();

        Scanner in = new Scanner(System.in);

        while(true){

            chk.s=in.nextLine();

        }

    }

}


不知你程序的目的,你程序运行时,新建的线程中,s没有赋值,它为null,你的

for(int i = 0;i<s.length();i++){

中的s.length就会报NULL错,且你的两个死循环看去都没有意义

若你要不报错,在 第一个while(true)前加

       if (s==null)
            return;

但你程序不会有任何输出结果的

下一篇:数据库是如何组织数据的?

上一篇:为什么这个输出永远是0

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?