2016-09-29 7 views
0

Ich habe einige andere Fragen mit dem gleichen Titel gesehen, aber es ist nicht das gleiche Problem. Ich möchte Strings, die in einem Array enthalten sind, selbst in Arrays konvertieren.Wie man String in String Array innerhalb eines Arrays konvertiert

So habe ich dies:

String str = "hello"; 

, dass ich bin mit diesem in ein String-Array drehen:

String[] arr = str.split(""); 

Welche {"h", "e", "l", "l", "o"}

So gibt würde ich mag dies in ein Array von Objekten verwandeln, in denen jedes Objekt ein String-Array wäre. So dass ich h[0] (früher initialisieren) in etwas wie System.out.println(h[0]) anrufen könnte.

Ich nehme an, das ist nicht ganz klar, da ich kein englischer Muttersprachler bin, also würde ich gerne meine Erklärungen schärfen.

EDIT: zum Beispiel initialisieren ich

String[] h = {"* *", 
       "* *", 
       "*****", 
       "* *", 
       "* *"}; 

und andere „Buchstaben“, bevor all das, und schließlich möchte ich mit

for (int l=0; l<str.lenght(); l++) { 
    //Do what I explained above which would return the array letter = h (also the array) 
    for (int s=0; s<5; s++) { 
     System.out.println(letter[i]); 
    } 
} 

Und die Ausgabe zeigt „hallo“ char von drucken * nach Zeichen von *.

+2

Können Sie ein exemple von einem oder zwei gewünschten Ein- und Ausgang für das, was Sie tun wollen? – emiliopedrollo

+1

Also suchen Sie einfach nach einem doppelten Array von Strings, wie 'String [] [] doubeArr;'? – nhouser9

+1

Das können Sie in Java nicht tun. (siehe http://stackoverflow.com/questions/8631935/creating-a-variable-name- using-a-string-value). – azurefrog

Antwort

0

Wenn das, was Sie tun möchten, dies wiederum:

String = "hello"; 

In diesem:

String[] h; 
String[] e; 
String[] l; 
String[] l; 
String[] o; 

Es ist nicht möglich. Java muss den Namen der Variablen während der Kompilierungszeit kennen. Sie können keine neue Variable basierend auf einer zufälligen Eingabe benennen.

Sie können jedoch alle möglichen Buchstaben definieren und dann nur diejenigen zurückgeben, die Sie benötigen; so etwas wie dieses:

final String[] LETTER_A = {" * ", " * * ", "*****", "* *", "* *"}; 
final String[] LETTER_B = {"**** ", "* *", "**** ", "* *", "**** "}; 
// ... 
final String[] LETTER_H = {"* *", "* *", "*****", "* *", "* *"}; 
// ... 
final String[] LETTER_Y = {"* *", " * * ", " * ", " * ", " * "}; 
final String[] LETTER_Z = {"*****", " * ", " * ", " * ", "*****"}; 

public void printASCII(String s) { 
    for (String c : s.toUpperCase().split("")) { 
     switch(c) { 
      case "A": 
       for (int i = 0; i < LETTER_A.length; i++) { 
        System.out.println(LETTER_A[i]); 
       } 
       System.out.println(); 
       break; 
      case "B": 
       for (int i = 0; i < LETTER_B.length; i++) { 
        System.out.println(LETTER_B[i]); 
       } 
       System.out.println(); 
       break; 
      // ... 
      case "H": 
       for (int i = 0; i < LETTER_H.length; i++) { 
        System.out.println(LETTER_H[i]); 
       } 
       System.out.println(); 
       break; 
      // ... 
      case "Y": 
       for (int i = 0; i < LETTER_Y.length; i++) { 
        System.out.println(LETTER_Y[i]); 
       } 
       System.out.println(); 
       break; 
      case "Z": 
       for (int i = 0; i < LETTER_Z.length; i++) { 
        System.out.println(LETTER_Z[i]); 
       } 
       System.out.println(); 
       break; 
     } 
    } 
} 

Ausgabe von printASCII("Yahbyz");:

* * 
* * 
    * 
    * 
    * 

    * 
* * 
***** 
* * 
* * 

* * 
* * 
***** 
* * 
* * 

**** 
* * 
**** 
* * 
**** 

* * 
* * 
    * 
    * 
    * 

***** 
    * 
    * 
* 
***** 
+0

Danke, ich werde das versuchen, aber ich bin ziemlich neu in Java, also muss ich diesen Code in 'public static void main' schreiben oder woanders? –

+0

Das liegt an dir. Vielleicht möchten Sie sich den Abschnitt Dokumentation über [Wie schreibe ich ein Java-Programm?] (Http://stackoverflow.com/documentation/java/84/java-overview) oder google einige Java-Tutorials ansehen. Auch wenn du denkst, dass meine Antwort oben dir geholfen hat, wäre es schön, wenn du es auch akzeptierst. – walen

+0

Ja, ich wollte das schon machen, ich wollte es zuerst testen. Vielen Dank für Ihre Antwort! –

0

Im Versuch, deinen Geist hier zu lesen, aber:

char S[][] = new char[20][]; 

S[0] = "hello".toCharArray(); 
S[1] = "anotherstring".toCharArray(); 
... 
S[19] = "".toCharArray(); 

System.out.println(S[0][0]); //h 
System.out.println(S[1][5]); //e 
System.out.println(S.length); //20, we have room for 20 strings 
System.out.println(S[19].length); //0 because string S[19] is empty 
System.out.println(String.valueOf(S[0])); //hello 
System.out.println(S[19][0]); //error because string is empty 

Alternativ können Sie ein einfaches Array von Strings haben (String[]) und Zugriff auf einzelne Zeichen mit der Funktion charAt(i)

Verwandte Themen