社区首页 >问答首页 >Java字符串拆分(“|”)方法调用不能正常工作

Java字符串拆分(“|”)方法调用不能正常工作
EN

Stack Overflow用户
提问于 2014-07-16 08:27:32
回答 3查看 30.2K关注 0票数 14
代码语言:javascript
代码运行次数:0
复制
public class SplitStr {

    public static void main(String []args) {
        String str1 = "This | is | My | Account | For | Java|";
        String str2 = "This / is / My / Account / For / Java/";
       // String[] arr = str.split("|");

        for(String item : str1.split("|")) {
            System.out.print(item);
        }
    }
}

该程序可以正常使用String str2,但不能使用String str1此程序中可能的流是什么?

EN

回答 3

Stack Overflow用户

发布于 2014-07-16 08:30:12

String#split()需要一个正则表达式作为第一个参数,而|是正则表达式中的控制字符。

要使正则表达式解析器理解您的意思是按文字|拆分,需要将\|传递给正则表达式解析器。但是\是Java string文字中的一个控制字符。因此,要使Java编译器理解您想要将\|传递给正则表达式解析器,需要将"\\|"传递给String#split()方法。

票数 53
EN

Stack Overflow用户

发布于 2014-07-16 08:30:25

使用

代码语言:javascript
代码运行次数:0
复制
str1.split("\\|")

而不是

代码语言:javascript
代码运行次数:0
复制
str1.split("|")

你需要避开|

票数 23
EN

Stack Overflow用户

发布于 2014-07-16 08:30:10

split需要一个正则表达式,由于|是正则表达式中的一个特殊字符,因此您必须对其进行转义。试试str.split("\\|")。示例:

代码语言:javascript
代码运行次数:0
复制
>>> Arrays.asList("This | is | My | Account | For | Java|".split("\\|"));
[This ,  is ,  My ,  Account ,  For ,  Java]
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24775817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文