小木子呀 2020-12-10 22:54 采纳率: 50%
浏览 74
已采纳

大神们什么情况啊 一直说name 是空?

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.toCharArray()" because "this.name" is null
    at p.<init>(Demo.java:33)
    at Demo.main(Demo.java:3)
public class Demo {
    public static void main(String [] args){
        p l =new p("  Tupi   ");
        l.i();
        l.x();
        l.s1();
        //System.out.print(l.c+"   "+l.b);
        int e = 0;
        int g = 5;
        char [] a  = {' ','a','b','c','n',' '};
        System.out.print(String.copyValueOf(a,e,g+1));

    }
}


class p{
    private String name;
    p(String name){
        this.name = name;
    }

    public int getC() {
        return c;
    }

    public int getB() {
        return b;
    }

    private int c;
    private int b;
    char [] a  = name.toCharArray();

    public void i() {
        for (int i = 0;i<a.length;i++){
            if (a[i]!=' '){
                c=i;
                break;

            }
        }
    }
    public void x() {
        for (int i = a.length-1;i>0;i--){
            if (a[i]!=' '){
                b=i;
                break;

            }
        }
    }
    public void s1(){
        System.out.println(String.copyValueOf(a,this.getC(),this.getB()));
    }


}

我人都傻掉了 ,设计思路是这样的 我想模拟trim  去空格,我想先传一个字符串进去,然后再用 字符串转字符数组,然后再用字符数组循环去除空格,再用字符数组转换字符串!    

现在问题是 我穿进去一个字符串,为什么说我是null值 搞不懂 我是小白!大神救救孩子吧!!

  • 写回答

2条回答 默认 最新

  • 南笙菇凉 2020-12-11 10:37
    关注
    public class Demo {
        public static void main(String [] args){
            p l =new p();
            l.str_char("  Tupi   ");
            l.i();
            l.x();
            l.s1();
            //System.out.print(l.c+"   "+l.b);
            int e = 0;
            int g = 5;
            char [] a  = {' ','a','b','c','n',' '};
            System.out.print(String.copyValueOf(a,e,g+1));
     
        }
    }
     
     
    class p{
        //private String name;
        char[] a;
        
        public void str_char(String name) {
        	a = name.toCharArray();;
        }
     
        public int getC() {
            return c;
        }
     
        public int getB() {
            return b;
        }
     
        private int c;
        private int b;
        
     
        public void i() {
            for (int i = 0;i<a.length;i++){
                if (a[i]!=' '){
                    c=i;
                    break;
     
                }
            }
        }
        public void x() {
            for (int i = a.length-1;i>0;i--){
                if (a[i]!=' '){
                    b=i;
                    break;
     
                }
            }
        }
        public void s1(){
            System.out.println(String.copyValueOf(a,this.getC(),this.getB()));
        }
    }

    或者这样子吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题