3

如何将 char 数组转换为字符串数组?

例如"Text not text" → "Text not text" as char array → "Text" "not" "text"

我知道怎么做"Text not text" → "Text not text",但不知道怎么做

"Text not text" as char array → "Text" "not" "text"

这是代码示例,但它不起作用

public class main {
    public static void main(String[] args) {
        StringBuffer inString = new StringBuffer("text not text");
        int n = inString.toString().replaceAll("[^a-zA-ZА-Я а-я]", "")
                .split(" ").length;
        char[] chList = inString.toString().toCharArray();
        System.out.print("Text splited by chars - ");
        for (int i = 0; i < chList.length; i++) {
            System.out.print(chList[i] + " ");
        }
        System.out.println();
        String[] temp = new String[n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < chList.length; j++) {
                if (chList[j] != ' ') {
                    temp[i] = new String(chList);
                }
            }
            System.out.println(temp[i]);
        }
    }

}
4

4 回答 4

2

所以你有一个 char 数组,我是对的:

char[] chars = new char[] {'T', 'e', 'x', 't', ' ', 'n', 'o', 't', ' ', 't', 'e', 'x', 't'};

那么你想要得到的是单独的单词Text, notand text??

如果是这样,请执行以下操作:

String newString = new String(chars);
String[] strArray = newString.split(" ");

现在strArray是你的阵列。

于 2013-04-22T12:25:21.750 回答
1

使用String.split()方法。

于 2013-04-22T11:50:58.430 回答
0

简短的甜蜜答案来自 anvarik。但是,如果您需要展示一些工作(也许这是家庭作业?),以下代码将手动构建列表:

char[] chars = "text not text".toCharArray();

List<String> results = new ArrayList<String>();
StringBuilder builder = new StringBuilder();

for (int i = 0; i < chars.length; i++) {
  char c = chars[i];

  builder.append(c);

  if (c == ' ' || i == chars.length - 1) {
    results.add(builder.toString().trim());
    builder = new StringBuilder();
  }
}

for (String s : results) {
  System.out.println(s);
}
于 2013-04-22T11:50:48.873 回答
-1

我认为如果在用 $ 符号转换“Text not text”时替换所有空格,那么结果字符串将变为 'T ext$ not$ tex t'

字符串 ex= ex.replaceAll("\s","$");

并且在将其转换回来时,您可以再次将 $ 替换为空格。

除此之外,我似乎想不出任何其他方式来说明如何在拆分时保持单词的含义。

于 2013-04-22T11:54:32.470 回答