在字符串java中以字符*分割

 键盘上的泪g_752 发布于 2023-02-12 19:57

我有一个字符串,因为String placeStr="place1*place2*place3" 我想让数组包含place1,place2,place3如下:

String[] places=placeStr.split("*");
System.out.println(places[0]);

但它显示错误E/AndroidRuntime(32118):引起:java.util.regex.PatternSyntaxException:索引1附近的regexp模式中的语法错误:*

我认为原因是字符"*".如果我改变* - ,它显示确定.我该怎么办?

1 个回答
  • 使用Regexp时,\*表示0 or more最后定义的表达式的实例.所以举个例子.

    s*意味着匹配任何具有0或更多"s"的东西.这将匹配"ss","sssss""".

    当我们想要实际搜索*,而不是将其用作运算符时,我们需要escape使用该\字符.但是,单数\用于特殊字符(例如\s\t),因此我们还需要使用另一个字符来转义字符\.

    这导致:

    \ (ignore the next slash)
    \ (ignore the star)
    * (would be 0 or many, but its been ignored so means the literal.) 
    

    或者换句话说

    \\*
    

    在Java中,我们可以像这样使用它:

    String[] places=placeStr.split("\\*");
    System.out.println(places[0]);
    

    2023-02-12 19:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有