# Frage zu NullPointerException



## AlexD (9. Nov 2014)

Hallo zusammen, ich muss eine Aufgabe abgeben. 

Von der Tastatur sollen Zahlen eingegeben werden, dann soll geguckt werden welche Zahlen es sind und dann soll für z.B. die Eingabe

1122123 

folgende Ausgabe kommen

3x1. 3x2. 1x3. 

Ich hab nun folgendes kleines Programm geschrieben aber es fliegt immer eine Nullpointer Exception in der For schleife ;(


```
import java.io.*;
import java.util.*;

public class Aufg2 {


/**
* @param iArray
*/
public static void main(String[] iArray) {
// TODO Auto-generated method stub
// einen Scanner für die Eingabe initialisieren
	Scanner sc = new Scanner(System.in);
	
	// der String muss gezählt werden und ein Array das genau so lang ist muss angelegt werden 
	// der String wird nun in ein Int umgewandelt und die Zahlen werden 
	// in das Array gespeichert
	// die for schleife arbeitet das Array ab.

	String s;
	
	String s2 = "";
	while(true){
		
		 s = sc.next();
        if(s.equals(".")) break;
        System.out.println(s); 
        s2+=s;
		
	}
	sc.close();
	int leng = s2.length();
	
	String[] myArray  = new String [leng];
	
	
	int zaehler = 1 ;
	
	
String nenner =null;

for (int i = 1; i < leng; i++) {
	
        nenner = myArray[i - 1];
        System.out.println("nenner" + nenner);
             if (myArray[i].equals(myArray[i+1])) {
	                zaehler++;
                  } else {
                      System.out.print(zaehler + "x" + nenner + ".");
                      zaehler = 1;
                            }
                  }
      }
}
```

Kann mir vielleicht jemand einen Tip geben? 

Vielen Dank im voraus!


----------



## JavaMeister (9. Nov 2014)

http://www.java-forum.org/java-basics-anfaenger-themen/163768-exception-thread-main.html#post1039242


----------



## AlexD (9. Nov 2014)

Danke, 

ich seh auch gerade beim durchsehen, da ist auch nix drin im Array :/

hab ich mich hier zu früh gemeldet.


----------



## njans (9. Nov 2014)

*if* (myArray[i].equals(myArray[i+1]))

Da würde ich sagen kracht es. 
*AlexD*, du bekommst beid er Fehlermeldung auch einen Stacktrace, der dir sagt in welcher Klasse und welcher Zeile die NPE geworfen wird.


----------



## AlexD (9. Nov 2014)

Ja hab das schon gesehen das ich da ziemlichen s***** geschrieben hab.


----------



## AlexD (9. Nov 2014)

Ich bin eigentlich jetzt fast fertig hab noch einen Fehler drin 

Es fliegt eine IndexOutOfBoundException

kann mal vielleicht einer drüber gucken wieso die fliegt ich hab ein Brett vorm Kopf 



```
import java.io.*;
import java.util.*;

public class Aufg2 {

	/**
	 * @param iArray
	 */
	public static void main(String[] iArray) {
		// TODO Auto-generated method stub
		// einen Scanner für die Eingabe initialisieren
		Scanner sc = new Scanner(System.in);

		// der String muss gezählt werden und ein Array das genau so lang ist
		// muss angelegt werden
		// der String wird nun in ein Int umgewandelt und die Zahlen werden
		// in das Array gespeichert
		// die for schleife arbeitet das Array ab.

		String s;

		String s2 = "";
		while (true) {

			s = sc.next();
			if (s.equals("."))
				break;
			System.out.print(s);
			s2 += s;

		}
		sc.close();
		int leng = s2.length();

		String[] myArray = new String[leng];
		// String array anlegen
		
		// Strin array füllen mit substring
		for (int j = 0; j < s2.length();j++){
			
			myArray[j]=s2.substring(j,j+1);
		
			}
		
		int zaehler = 1;

		String nenner = null;

		for (int i = 1; i <= leng; i++) {
			System.out.println("fang for schleife an");
			nenner = myArray[i - 1];

			
			if (leng>1 && myArray[i-1].equals(myArray[i])) {

				zaehler++;

			} else {
				
				System.out.print(zaehler + "x" + nenner + ".");

				zaehler = 1;

			}
			
		}
			
	}
```


----------



## AlexD (9. Nov 2014)

OK habs gelöst ! 
Antwort 

```
import java.io.*;
import java.util.*;

public class Aufg2 {

	/**
	 * @param iArray
	 */
	public static void main(String[] iArray) {
		// TODO Auto-generated method stub
		// einen Scanner für die Eingabe initialisieren
		Scanner sc = new Scanner(System.in);

		// der String muss gezählt werden und ein Array das genau so lang ist
		// muss angelegt werden
		// der String wird nun in ein Int umgewandelt und die Zahlen werden
		// in das Array gespeichert
		// die for schleife arbeitet das Array ab.

		String s;

		String s2 = "";
		while (true) {

			s = sc.next();
			if (s.equals("."))
				break;
			s2 += s;

		}
		sc.close();
		int leng = s2.length()+1;

		String[] myArray = new String[leng];
		// String array anlegen
		
		// Strin array füllen mit substring
		for (int j = 0; j < s2.length();j++){
			
			myArray[j]=s2.substring(j,j+1);
		
			}
		
		int zaehler = 1;

		String nenner = null;
		if (leng == 1){
			nenner = myArray[0];
			System.out.print(zaehler + "x" + nenner + ".");
			}else{
		for (int i = 1; i < leng; i++) {
			
			nenner = myArray[i - 1];

			if(i+1 < leng){
				
			if ( myArray[i-1].equals(myArray[i])) {

				zaehler++;

			} else {
				
				System.out.print(zaehler + "x" + nenner + ".");

				zaehler = 1;

			}
			}	else{
				System.out.print(zaehler + "x" + nenner + ".");}
		}
	}
	
  }
}

Danke 
/Closed
```


----------

