java - 在 | 上拆分字符串Java 中的(管道)

标签 java regex string split

<分区>

我有以下文本:ARIYALUR:ARIYALUR|CHENNAI:CHENNAI|COIMBATORE:COIMBATORE|CUDDALORE:CUDDALORE|DINDIGUL:DINDIGUL|ERODE:ERODE|KANCHEEPURAM:KANCHEEPURAM|KANYAKUMARI:KANYAKUMARI|KRISHNAGIRI:KRISHNAGIRI|MADURAI:MADURAI|NAMAKKAL:NAMAKKAL|NILGIRIS:NILGIRIS|PERAMBALUR:PERAMBALUR|PONDICHERRY:PONDICHERRY|SALEM:SALEM|THANJAVUR:THANJAVUR|THENI:THENI|THIRUVALLUR:THIRUVALLUR|THOOTHUKUDI:THOOTHUKUDI|TIRUNELVELI:TIRUNELVELI|VELLORE:VELLORE|VILLUPURAM:VILLUPURAM|VIRUDHUNAGAR:VIRUDHUNAGAR|

我尝试做一个 split("|")但是我的数组是由单个字符组成的,而不是每个区域组成的。

最佳答案

| 是正则表达式中的一个特殊符号。请改用 \\|

我将解释为什么我附加了 2 个斜杠。要转义 |,我需要 \|。但是,要表示字符串 \|,需要 "\\|",因为 \ 本身需要在字符串横向中进行转义。

而且,正如 xagyg 在评论中指出的那样,split 会将参数视为正则表达式。它不会被视为普通字符串。

在此用例中,您可能有兴趣了解 Pattern.quote .你可以做 Pattern.quote("|")。这样,所有字符都不会被视为特殊字符。

关于java - 在 | 上拆分字符串Java 中的(管道),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13661433/

相关文章:

java - 通过 DataOutputStream.writeUTF() 发送信息时出现奇怪的字符

c# - 如何使用正则表达式分隔包含任意字符且仅以数字结尾的字符串?

c# - 为什么 Char.IsDigit 为无法解析为 int 的字符返回 true?

c# - 从 bool 函数c#中提取字符串变量

java - 如何使用平移动画

Java 内存模型和成功的 boolean 值

java - Systemd: '_JAVA_OPTIONS' 节中的未知左值 'Service'

Python:UserWarning:此模式具有匹配组。要实际获取组,请使用 str.extract

javascript - 图像的正则表达式未返回预期值

C: 为什么在 scanf() 函数中没有 & for strings?