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

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

Comments
nice

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.

Comments
very helpfull thanks
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);
}
}

Edited 6 Years Ago by peter_budo: Keep It Organized - For easy readability, always wrap programming code within posts in [code] (code blocks)

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.

This question has already been answered. Start a new discussion instead.