2011-01-14 9 views
0

Ich versuche ein mehrdimensionales Array in Java zu erstellen und ich habe es richtig eingerichtet, aber am Ende heißt es '{' erwartet, wenn dort schon eins ist . Dies ist die Fehlerzeile innerhalb des Codes'}' erwarteter Fehler in Java, aber es ist schon da

{ 
"Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59","50.05" 
}; 

Irgendwelche Vorschläge zu einem Weg, um dieses Problem zu beheben?

Edit:

Bevor diese Linie der Rest des Feldes ist und diese Codierung:

import javax.swing.JOptionPane; 

public class CMS_Program 
{ 
    public CMS_Program() 
     { 
     String[][] names = new String[][] 
      { 
       { Array here 

Alle {sind zu am Ende verschlossen.

+2

Mehr Kontext um diese Linie? Scheint so, als müssten Sie das ';' entfernen, wenn dies Teil eines mehrdimensionalen Arrays ist. – marcog

+0

Hinzugefügt. Ich musste das Array ausschneiden, da das Array gut funktioniert und es ist einfach das Ende, wenn es eindeutig da ist. – Josh

+1

Haben Sie versucht, das '' '' 'durch' '' 'zu ersetzen? Die "inneren" Arraydefinitionen in einem MD-Array müssen wie jedes andere Arrayelement durch ',' getrennt sein. – thkala

Antwort

2

Try this:

String[][] twoDimensional = {{"00", "01"}, {"10", "11"}}; 
0

Es sieht aus wie Sie dies tun:

String[][] names = new String[][] 
      { 
       { 
        "Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59","50.05" 
       }; 

Beachten Sie, dass es eine fehlende Schließung ist '}' Wenn die schließende Klammer wird dann nicht dem Semikolon fehlt muss nach der zweiten schließenden Klammer sein und nicht die erste.

0

Das sollte gut funktionieren.

String[][] names = new String[][] 
     { 
      {"ramalam", "wam wam"}, 
      {"ramalam", "wam wam"} 
     }; 

Könnte es sein, dass Sie nach dem Array ein Semikolon hatten?

0

Dies gilt:

String[][] names = new String[][] 
           { 
            { 
              "Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59","50.05" 
            } 
           }; 

Ich kann nicht sehen, wie dies obwohl von der Quelle unterscheidet ...

7

Viele Zusammenhang noch aus Ihrer Frage fehlt. Wie auch immer, die direkte Initialisierung eines String[][] sollte im Grunde wie folgt durchgeführt werden:

String[][] names = new String[][] { 
    { "Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59", "50.05" }, 
    { "Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59", "50.05" }, 
    { "Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59", "50.05" }, 
    { "Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59", "50.05" }, 
    { "Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59", "50.05" } 
}; 

Allerdings sind Sie besser dran mit einem List<Person> wo die Person Klasse sieht wie folgt aus.

public class Person { 
    private String name; 
    private String id; // ?? 
    private Gender gender; 
    private String city; // ??? 
    private Double time; // Or so? 
    // ... 
    // Add/generate c'tor/getter/setter/equals/hashcode and other boilerplate. 
} 

Auf diese Weise kann nur

List<Person> persons = new ArrayList<Person>(); 
persons.add(new Person("Gerald Field", "U18", Gender.MALE, "Bourges", 14.01, 26.59, 50.05)); 
// ... 
mit

kann am Ende

arbeitet nur mit realen Objekten/Personen und keine Geige nicht auf niedrige Ebene mit komplexen Arrays. Ihr Code wird mehr selbst dokumentiert und besser wartbar.

+0

Ich denke, es ist nicht wirklich eine gute Praxis, so viele Argumente im Konstruktor zu übergeben. Sie können es mit einer Builder-Klasse vermeiden, die eine flüssige Schnittstelle verwendet. Siehe http://stackoverflow.com/questions/1632058/java-constructor-with-large-arguments-o-java-bean-getter-setter-approach –

+1

@Bence: Es war nur ein Kickoff-Beispiel, um den ersten Schritt zu machen mach * es * richtig. – BalusC

0

{ und } sind Anfang und Ende Symbole eines Arrays und , verwendet wird, um die Elemente im Array .. zu begrenzen Wenn Sie ein mehrdimensionales Array erstellen (im Grunde eine Reihe von Array Sie verwenden müssen {.. } für das Array, das deklariert wird, sowie für jedes Element innerhalb, da diese auch Arrays sind.

So verwenden Sie so etwas wie dieses:

String[][] myMultiDimensionalArray = new String[][] 
{ 
    { 
    "Gerald Field", "U18", "Male", "Bourges", "14.01", "26.59","50.05" 
    }, 
    { 
    "Name Lastname", "U18", "Male", "Bourges", "14.01", "26.59","50.05" 
    } 
} 

Was der Fehler versucht zu sagen ist, dass es nur eine Dimension sieht, und es war wir zu glauben, dass es zwei sein wird.

Verwandte Themen