【问题标题】:Strange string split behaviour奇怪的字符串拆分行为
【发布时间】:2010-10-19 23:10:02
【问题描述】:

我正在从我的服务器请求数据并接收2|bit.ly|1||1| 形式的字符串,| 应该是分隔符。

虽然下面的代码应该可以完成这项工作

BufferedReader br = null;
...
br = new BufferedReader(new InputStreamReader(inputStream));
...

String line;
String[] columns;
ContentValues values;

while((line = br.readLine())!=null) {
    columns = line.split("|");
    ...
}

但在 line.split("|"); 之后,列包含 15 个元素,而不是预期的 6 个。仔细查看它的内容会发现字符串中的每个字符都存储在一个数组元素中。

任何人有一个想法,它有什么问题?在我只使用 ASCII 字符的示例中,来自服务器的代码没有以任何方式编码。

【问题讨论】:

    标签: android string split


    【解决方案1】:

    String.split 将正则表达式作为拆分字符串,'|'字符在正则表达式中表示 OR。您需要转义该角色,例如line.split("\\|");

    注意双反斜杠:您需要为 Java 编译器转义反斜杠,以便正则表达式引擎得到一个文字反斜杠,后跟一个“|”,然后引擎将其解释为文字“|”。

    【讨论】:

    • 现在我觉得很愚蠢:P 很确定它也会接受文字。谢谢!
    猜你喜欢
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多