java - Java 中的字符串拆分不起作用?

标签 java split emoticons

我用空格分割这个字符串:String input = ":-) :) :o) :] :3 :c) :> =] 8) =) :} :^)";(表情符号之间的空格)

结果是:

:-)?:)?:o)?:]?:3?:c)?:>
=]

8)

=)?:}?:^)

结果中有一些奇怪的字符。我不知道为什么。请帮助我。

代码如下:

fileReader = new BufferedReader(new FileReader("emoticon.txt"));
String line = "";
while ((line = fileReader.readLine()) != null){
    String[] icons = parts[0].split("\\s+");
    ....
}

感谢您的任何建议。 这是表情文件:
https://www.dropbox.com/s/6ovz0aupqo1utrx/emoticon.txt

最佳答案

String input = ":-) :) :o) :] :3 :c) :> =] 8) =) :} :^)";
String[] similies = input.split(" ");
for (String simili : similies) {
    System.out.println(simili);
}

这很好用。 输出:

:-)
:)
:o)
:]
:3
:c)
:>
=]
8)
=)
:}
:^)

如果有任何制表符/换行符/空格并且你想拆分,在这种情况下你可以使用

input.split("\\s+"); 

在您的示例中,几乎没有其他字符是它们的同类字符和不间断空格,因此您必须明确处理这些类型的字符。这是代码:

public static void main(final String[] args) throws Exception {
    BufferedReader fileReader = new BufferedReader(new FileReader("emoticon.txt"));
    String line = "";
    while ((line = fileReader.readLine()) != null) {
        line = line.replaceAll("Â", "");
        line = line.replace("" + ((char) 160), " ");
            System.out.println("line: " + line);
        String[] icons = line.split("\\s+");
        for (String icon : icons) {
            System.out.println(icon);
        }
        System.out.println("=======================");
    }
}

关于java - Java 中的字符串拆分不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17518735/

相关文章:

scala - 如何在scala中将数字拆分为数字

ios - NSString 中的字符编码转为 unicode 字符

python - 将字符串拆分为列表,保留重音字符和表情符号,但删除标点符号

android - 如何从android中的字符串中提取文本笑脸

java - JXCollapsiblePane 与 JXMultiSplitPane

用于拆分 RDF 文件的 Java API

java - 独立 IntelliJ 解析器中的符号解析

C# 正则表达式提取包含在单引号中的字符串

java - 在android中动态添加缩略图

java - "arrays of parameterized type( List<String>[] )"和 "array of type variable( T[] )"有什么区别?