Java split() 未按预期工作

标签 java

我目前的文本中有“TweetJSONObject\r\n09/19/14TweetJSONObject”,其中 TweetJSONObject 只是 json 格式的推文。现在我正在使用 .split() 函数尝试将推文彼此分开,但似乎\r\n09/19/14 不是合适的分割字符串?这是代码:

String[] value = line.split("\r\n09/19/14");

PrintWriter writer = new PrintWriter("hello.txt", "UTF-8");
writer.println(value[0]);
writer.close();

文本文件“hello”,当我打开它时,它又只是以下字符串,“TweetJSONObject\r\n09/19/14TweetJSONObject”。关于我哪里出错了有什么想法吗?

最佳答案

您需要转义反斜杠:

String[] value = line.split("\\\\r\\\\n09/19/14");
<小时/>

为什么有这么多反斜杠?

在 Java 字符串中,反斜杠是转义字符。文字字符串 "\\" 是一个反斜杠。在正则表达式中,反斜杠也是转义字符。正则表达式 \\ 匹配单个反斜杠。所以这个正则表达式作为一个Java字符串,就变成了"\\\\"

关于Java split() 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26127331/

相关文章:

java - 在 Java 中如何读取文本文件并指定它是什么类型的对象?

java - 以编程方式显示来自 Servlet 类的网页

java - Android 图标有时打开新应用程序有时会显示旧应用程序,求助!

Java Sound API - 区分多个相等的USB声卡

java - 在 selenium 自动化期间绕过 "External protocol request"弹出窗口

java - 是否收集了 lambda 垃圾?

java - 如何配置 Maven 项目以从 config.properties 文件中读取?

java - Java中删除艺术家时的外键问题

Java 注册可用的类以自动列出

java - 在方法之前和之后执行代码?