-2

我在java中有一个非常基本的任务:

将字符串拆分为字母(String 类型,而不是 char)。

我首先使用的是String.split("123")返回一个尾随空格“{,1,2,3}”。由于您需要将数组转换为其他内容或创建一个新数组以删除第一个空格 - 我搜索了一个很好的方法并发现了许多变体,但它们都很庞大,例如使用循环、转换转换、转换。

那么如何将字符串转换为字母字符串的集合?

  • 通过使用字符串缓冲区?
  • 转换为 ArrayList?
  • 使用拆分并创建一个新数组,而无需引导空格?
  • 使用分词器?

一个简短、清晰的方法看起来如何?

我现在最喜欢的是

    String[] singleLetters = string.split("");
    singleLetters = Arrays.copyOfRange(singleLetters, 1, singleLetters.length);

更好的方法是:

    String[] singleLetters = string.split("(?!^)")  
4

5 回答 5

2

你为什么不使用长度为 1 的subString() - 这会给你String单独的字符

这是一个简单的演示代码

 public void subStrChar{
    String s = "helo";
    for(int i=0;i<s.length();i++){        
        System.out.println(" " + s.substring(i, i+1));
     }
    }
于 2013-02-03T13:54:21.260 回答
2

这个怎么样:

public static String[] splitMyString(String input)
  {
  final String[] array = new String[input.length()];
  for (int i = 0; i < input.length(); ++i)
     array[i] = input.substring(i, i+1);
  return array;
  }
于 2013-02-03T13:56:15.520 回答
1

String.toCharArray()能解决你的问题吗?

于 2013-02-03T13:49:31.357 回答
1

看看番石榴的拆分器也许。

于 2013-02-03T13:55:03.993 回答
0
str.split("(?!^)")

正则表达式将阻止匹配开头的空字符串,因此结果将不包含起始空字符串。该解决方案无需任何假设即可工作。

于 2013-02-03T14:09:27.143 回答