将String拆分成字母的简短明确方法?

时间:2013-02-03 13:46:36

标签: java string split

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

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

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

那你怎么把String转换成一个字母字符串的集合?

  • 使用StringBuffers?
  • 转换为ArrayList?
  • 使用split并创建一个新数组,而不会引出空格?
  • 使用Tokenizer?

简洁明了的方法怎么样?

我现在最喜欢的是

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

更好的方法是:

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

5 个答案:

答案 0 :(得分:2)

String.toCharArray()会解决您的问题吗?

答案 1 :(得分:2)

为什么不使用lenth 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));
     }
    }

答案 2 :(得分: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;
  }

答案 3 :(得分:1)

请看看番石榴Splitter

答案 4 :(得分:0)

str.split("(?!^)")

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