在Java中将单词拆分为字母

Léo*_* 준영 14 java split

你怎么能把一个单词分成它的组成字母?

代码示例不起作用

 class Test {
         public static void main( String[] args) {
             String[] result = "Stack Me 123 Heppa1 oeu".split("\\a");                                                                                   

             // output should be
             // S
             // t
             // a
             // c
             // k
             // M
             // e
             // H
             // e
             // ...
             for ( int x=0; x<result.length; x++) {
                 System.out.println(result[x] + "\n");
             }
         }
     }
Run Code Online (Sandbox Code Playgroud)

问题似乎在于角色\\a.它应该是[A-Za-z].

jjn*_*guy 47

你需要使用split("");.

这会将每个角色分开.

但是我觉得迭代一个String像这样的字符会更好:

for (int i = 0;i < str.length(); i++){
    System.out.println(str.charAt(i));
}
Run Code Online (Sandbox Code Playgroud)

没有必要以String不同的形式创建另一个副本.

  • 这总是会创建一个数组,该数组比字符串中的字符长一个插槽,第一个字符为空.示例"abcd"将产生{"","a","b","c","d"} (2认同)

Zed*_*Zed 29

"Stack Me 123 Heppa1 oeu".toCharArray()

  • 调用`charAt`是O(1)因为String是在后端使用数组实现的.创建副本总是会变慢. (2认同)

p3t*_*t0r 6

包括数字但不包括空格:

"Stack Me 123 Heppa1 oeu".replaceAll("\\W","").toCharArray();

=> S, t, a, c, k, M, e, 1, 2, 3, H, e, p, p, a, 1, o, e, u

没有数字和空格:

"Stack Me 123 Heppa1 oeu".replaceAll("[^a-z^A-Z]","").toCharArray()

=> S, t, a, c, k, M, e, H, e, p, p, a, o, e, u


小智 5

您可以使用

String [] strArr = Str.split("");
Run Code Online (Sandbox Code Playgroud)

  • 这会将一个额外的空白字符串添加到0位置,因此数组是一个额外的字符串。 (5认同)