当前位置: 首页 > 面试题库 >

Java奇怪的拆分行为 字符

公冶和豫
2023-03-14
问题内容

我有一个小文件,其中包含一些我想用“ |”分割的内容 字符。

当我尝试使用其他任何字符(例如“>”)时,它都可以正常工作,但是使用“ |” 性格,有一些意想不到的结果。

行本身(此处带有 >字符)
addere> to add>(1)

分割“ >”结果
[加法,加法(1)]

分割“ |” 结果
[,a,d,d,e,r,e,|,t,o,,a,d,d,|,(,1,)]

为什么要拆分所有内容,甚至忽略“ |” 字符串本身中的字符?
提前致谢。


问题答案:

您必须使用反斜杠对管道字符进行转义,因为其含义在正则表达式中很特殊。然后,您必须对Java本身使用反斜杠。尝试:

text.split("\\|")


 类似资料:
  • 我相信,当连续完成两个拆分时,Flink的行为很奇怪。我可能在我的实现逻辑中有一些错误,这就是为什么我在这里发帖征求您的意见。 最小示例:我有一个包含单词Apple、Banana和Orange的文本文件。我将其作为源在流执行环境中传递。我进行了第一次拆分,其中选择条件是参数是否为单词“Apple”。如果是,我将其放在“主题”Apples中,否则放在“主题”NotApples中。然后我在此拆分流中选

  • 所以我更新了代码,添加了行所做的是将主线程置于Hibernate状态一段时间,因此jvm可以获得一些时间来创建一个新线程。我正在得到我的预期输出

  • 问题内容: 我有一些奇怪的字符串池行为的问题。我正在使用比较相等的字符串来找出它们是否在池中。 输出为: 这对我来说是一个很大的惊喜。有人可以解释一下吗?我认为这是在编译时发生的。但是,为什么添加到String 根本没有任何区别呢? 问题答案: 是一个编译时常量,而 不是。因此,前者仅编译为字符串常量“ 555”,而后者则编译为实际的方法调用和串联,从而生成一个新的String实例。 另请参见JL

  • 我有以下代码来解析一个JSON文件: 要处理以下JSON文件: 如果我执行此代码,我将收到以下错误: 所以我开始一步一步地调试应用程序,看看part processing()中的哪个代码部分抛出了这个异常。令人惊讶的是,那里的所有代码都正常执行:没有抛出异常,也没有返回结果I except。 更让我惊讶的是,当我稍微改变第一种方法的代码时,它可以在不产生异常的情况下工作。 我不知道println方

  • 我发现了Java并发的奇怪行为。请参阅下面的下一段代码: 在我看来,这段代码应该挂起并永远等待,但是在控制台中的next out没有任何问题地完成了代码: 我试图找到一些关于如果线程死了通知锁的信息,但缺乏。我也没有在Java规范中找到任何信息。 但是如果我试图锁定其他对象(而不是thread对象),就会像我预期的那样工作得很好。

  • 如果有人理解java编译器为什么这么做,请解释一下。