如何将String转换为数组中的String Array

时间:2016-09-29 22:03:34

标签: java arrays string

我已经看到了一些具有相同标题的其他问题,但这不是同一个问题。 我想将数组中包含的字符串转换为数组本身。

所以我得到了这个:

String str = "hello";

我可以用这个变成一个字符串数组:

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

给出了{"h", "e", "l", "l", "o"}

所以我想把它变成一个对象数组,其中每个对象都是一个字符串数组。 这样我就可以在h[0]之类的内容中调用System.out.println(h[0])(之前的初始化)。

我认为这不是很清楚,因为我不是母语为英语的人,所以我很乐意提高我的解释。

编辑:例如我初始化

String[] h = {"*   *",
              "*   *",
              "*****",
              "*   *",
              "*   *"};
在所有这些之前

和其他“字母”,最终我想用

打印
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]);
    }
}

输出显示*的字符“* hello”char *。

2 个答案:

答案 0 :(得分:0)

我试图在这里读你的想法,但是:

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

或者你可以有一个简单的字符串数组(String[])并使用函数charAt(i)访问单个字符

答案 1 :(得分:0)

如果您想要做的是转过来:

String = "hello";

进入这个:

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

无法做到。 Java需要在编译期间知道变量的名称,您不能基于某些随机输入命名新变量。

但是,您可以定义所有可能的字母,然后只返回您需要的字母;像这样的东西:

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;
        }
    }
}

printASCII("Yahbyz");的输出:

*   *
 * * 
  *  
  *  
  *  

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

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

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

*   *
 * * 
  *  
  *  
  *  

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