字符串转字符数组和字符串数组

3

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

例如,"Text not text" → "Text not text" 作为字符数组 → "Text" "not" "text"

我知道如何将 "Text not text" → "Text not text",但不知道如何将

"Text not text" 作为字符数组 → "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]);
        }
    }

}

你为什么要创建一个 String[n]?你是想为每个字符创建一个字符串吗?还是想要一个由空格组成的字符串,长度为 n+1? - BobTheBuilder
当你需要检测单词时,这是可能的...! - anshulkatta
4个回答

2

所以你有一个字符数组,是这样的对吗:

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

那么您想要获得的是单独的单词 Textnottext 吗?

如果是这样,请按照以下步骤操作:

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

现在strArray就是你的数组。


不正确。然后我的文本将从相同的分割文本中完成。 - Anton Artemov
@AntonArtemov 嗯...这是正确的。也许你没有解释清楚你的任务规则? - Duncan Jones

1
使用 String.split() 方法。

如果问题是“如何将句子分成单词”,那么这肯定是简单的答案。 - Duncan Jones
问题是如何将字符数组转换回单词! - Anton Artemov
将字符数组转换为字符串,并拆分该字符串。 - JB Nizet

0
简短而甜美的答案是from 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);
}

当在字典中搜索时,返回的结果可能是“true”,就像单词探测器一样! - anshulkatta
但是如果只有单词之间的空格呢? - Anton Artemov

-1

我认为,如果在将“文本非文本”转换时,您将所有的空格替换为$符号,那么结果字符串就会变成'T e x t$ n o t$ t e x t'。

String ex= ex.replaceAll("\s","$");

在转换回来时,您可以再次用空格替换$。

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


而且如果单词之间只有空格呢? - Anton Artemov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接