# InputMismatchException bei scanner und keine ahnung warum



## Guest (30. Jan 2008)

ich möchte eine matrix einlesen, mit doublewerten. ich hab dies so gelöst
	
	
	
	





```
public void setMatrix() 
	{
		System.out.println("Matrix mit "+spalte+" Spalten und "+zeile+" Zeilen eingeben");
		i = 0;
		
		while (i <= zeile-1)
		{
			j = 0;
			while (j <= spalte-1)
			{
				matrix[i][j] = sc.nextDouble();
				j++;
			}
			i++;
		} 
	}
```
wenn ich jetzt in die konsole integer werte eingebe klappt es, jedoch nicht bei double zahlen. hier bekomme ich eine InputMismatchException. ich hab keien ahnung warum, ich hoffe mir kann jemand helfen dass es auch für double zahlen funktioniert


----------



## SlaterB (30. Jan 2008)

zum zweiten Male:
poste zum Himmel nochmal dazu, was genau du eingegeben hast..

Java versteht grundsätzlich erstmal nur double in der Form 5.0
5,0 mit Komma ist dagegen schlecht

kann man mit Aufwand umbiegen, aber wenn es daran liegt vielleicht erstmal einfach Punkt eingeben?


----------



## Guest (30. Jan 2008)

zum zweiten male ^^ ?
naja gut, ne also dass man einen double wert mit nem punkt dazwischen eingibt ist mir schon klar. das hab ich getan


----------



## Verjigorm (30. Jan 2008)

von welchem Typ ist denn matrix[][] ?


----------



## SlaterB (30. Jan 2008)

zum zweiten Mal nach 
http://www.java-forum.org/de/viewtopic.php?t=63331
wenn es kein großer Zufall ist 

da du immer noch nicht verrätst, was du eingibst, wird hier wohl jemand mit einer Zauberkugel gebraucht


----------



## Guest (30. Jan 2008)

matrix[][] ist vom typ double[][]

wenn zeile und spalte bsp jeweils 2 ist gebe ich ein
2.0 3.5
1.0 4.56
nehme ich stattdesen integer werte funktioniert es
also zB
1 2
3 4


----------



## SlaterB (30. Jan 2008)

so, jetzt wirds lustig,

Scanner ist eine lokalisierte Klasse, also wird Deutschland erkannt und es muss Komma statt Punkt sein 


```
public class Test
    implements Serializable
{

    public static void main(String[] args)
        throws Exception
    {
        int spalte = 2;
        int zeile = 2;
        double[][] matrix = new double[spalte][zeile];
        System.out.println("Matrix mit " + spalte + " Spalten und " + zeile + " Zeilen eingeben");
        int i = 0;
        int j = 0;
        String eingabe = "2,0 3,5\n1,0 4,56";
        Scanner sc = new Scanner(eingabe);

        while (i <= zeile - 1)
        {
            j = 0;
            while (j <= spalte - 1)
            {
                matrix[i][j] = sc.nextDouble();
                System.out.println("neuer Wert: "+matrix[i][j]);
                j++;
            }
            i++;
        }
        System.out.println(Arrays.toString(matrix[0])+", "+Arrays.toString(matrix[1]));
    }
}
```


----------



## Guest (30. Jan 2008)

super danke...ich musst ebei mir jetzt auch einfach statt punkt n komma eingeben damits klappt. der tipp hätte mir gereicht 
danke


----------

