Frage zu NullPointerException

AlexD

Aktives Mitglied
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 ;(

Java:
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!
 

AlexD

Aktives Mitglied
Danke,

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

hab ich mich hier zu früh gemeldet.
 

njans

Top Contributor
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.
 
Zuletzt bearbeitet:

AlexD

Aktives Mitglied
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


Java:
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

Aktives Mitglied
OK habs gelöst !
Antwort
Java:
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
 

Neue Themen


Oben