my program is compiled.but on run that i have message "Exception in thread "main" java.lang.NullPointer Exception"

1. class Rev
2. {
3. char a[];
4. char i=3;
5. void str()
6. {
7. for(i='A';i<'D';i++)
8. {
9. a='i';
10. }
11. }
12. void show()
13. {
14. for(int i='A';i<'D';i++)
15. {
16. System.out.print(a);
17. }
18. }
19. void reversStr()
20. {
21. for(i='A';i<'D';i++)
22. {
23. System.out.print(a);
24. }
25. }
26. }
27. class Revers
28. {
29. public static void main(String[] args)
30. {
31. Rev a1=new Rev();
32. a1.str();
33. a1.show();
34. a1.reversStr();
35. }
36. }
37. plz run and solve the problem

Recommended Answers

All 6 Replies

I think you should reconsider your for loop

for(i='A';i<'D';i++)

I never heard that in java you can increase value of character type variable, this is possible but in Perl
Create array of characters and with use of "i" get the character from the array
so if char[] myArray = { 'A', 'B', 'C'}
then if i = 1
you get character B

commented: nice +1

Oh my.

For one, I think this is how you meant to represent your code:

class Rev {
    char a[];
    char i=3;
    
    void str() {
        for(i='A';i<'D';i++) {
            a[i]='i';
        }
    }
    
    void show() {
        for(int i='A';i<'D';i++) {
            System.out.print(a[i]);
        }
    }
    
    void reversStr() {
        for(i='A';i<'D';i++) {
            System.out.print(a[i]);
        }
    }
    
}

class Revers {
    
    public static void main(String[] args) {
        Rev a1=new Rev();
        a1.str();
        a1.show();
        a1.reversStr();
    }
    
}

And, I get the error because you're trying to access an array element without having defined the size of the array.

void str() {
    for(i='A';i<'D';i++) {
        a[i]='i'; // ERROR OCCURS HERE
    }
}

So, define a length for the array at the start of class Rev: char[] a = new char[(some integer)]; You're still going to end up with issues, such as java.lang.ArrayIndexOutOfBoundsException: 65 when you try to access a and so on, because 'A' as a char is 65 as an integer, and integers are what you want to work with when accessing arrays.

I have no idea what your program's trying to do, but those are some thing to consider.

commented: very helpfull thanks +1

thank you very much

i m very thankfull 4 r u r help

class addition
{
public static void main(String args[])
{
int a=Integer.parseInt(args[0]);
int b=Integer.parseInt(args[1]);
int c=a+b;
System.out.println("sum="+c);
}
}

Your code only works if args.length >= 2 and if the args can be parsed as integers. In short, it is almost useless. As is upping a thread that is 3 years old.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.