小木子呀 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 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?