解决:IDE编译报错:Dangling metacharacter
Dangling metacharacter的意思是说:摇摆不定的元字符。
翻译成编程意思就是:当前字符计算有其它意思,并不能确定你到底用于什么意思。类似于中文的多义词。
如下图所示,当我们要分割字符串中“+”的时候,编译不通过。

解决办法:
第一种:将“+”写成“\\+”
public class Test {
public static void main(String[] args) {
<span class="hljs-built_in">String</span> str=<span class="hljs-string">"aaa+bbb+ccc+ddd"</span>;
<span class="hljs-built_in">String</span>[] <span class="hljs-built_in">split</span>=str.<span class="hljs-built_in">split</span>(<span class="hljs-string">"\\+"</span>);
<span class="hljs-keyword">for</span>(<span class="hljs-built_in">String</span> sp:<span class="hljs-built_in">split</span>){
System.out.println(sp);
}
}
}

启动main方法:
控制台输出:

说明分割成功了。
第二种.将“+”转成成“[+]”;

启动main方法,控制台输出:

说明分割成功了。
一般元字符还包括:“*”等。
当然,像"\";"|"在正则表达式有特殊意义,我们建议用第二种办法啊,否则可能出现另外一种意思。
比如:
public class Test {
public static void main(String[] args) {
<span class="hljs-built_in">String</span> str = <span class="hljs-string">"aaa|bbb|ccc|ddd"</span>;
<span class="hljs-built_in">String</span>[] <span class="hljs-built_in">split</span> = str.<span class="hljs-built_in">split</span>(<span class="hljs-string">"|"</span>);
<span class="hljs-keyword">for</span>(<span class="hljs-built_in">String</span> sp: <span class="hljs-built_in">split</span>) {
System.out.println(sp);
}
}
}

发现我们编译通过,但是当我启动main方法后,控制台输出:

说明当空字符串来分割了。
我们换一种方式:

启动main方法,控制台输出:

祝贺我们分割成功了。
</div>
解决:IDE编译报错:Dangling metacharacter的更多相关文章
- [转] 解决RegexKitLite编译报错
本文永久地址为http://www.cnblogs.com/ChenYilong/p/3984254.html ,转载请注明出处. 在编译RegexKitLite的时候,报错如下: Undefined ...
- 解决RegexKitLite编译报错
原地址:http://blog.csdn.net/kepoon/article/details/7586861 在编译RegexKitLite的时候,报错如下: Undefined symbols f ...
- IDEA解决 lombok 编译报错 cannot resolve method set/get 方法
首先关于lombok的介绍 https://blog.csdn.net/ThinkWon/article/details/101392808 总之,就是通过添加注解的方式,不需要为类编写getter或 ...
- org.eclipse.wst.common.project.facet.core.xml文件模板,解决eclipse编译报错。
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed f ...
- 解决php编译报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.
yum install -y epel-releaseyum install -y libmcrypt-devel
- xocde7下导入libsqlite3.tbd编译报错的解决办法
在xocde7下没有libsqlite3.dylib,只有libsqlite3.tbd,然后我导入了tbd.编译报错error: /Applications/Xcode.app/Contents/De ...
- wince6.0 编译报错:"error C2220: warning treated as error - no 'object' file generated"的解决办法
内容提要:wince6.0编译报错:"error C2220: warning treated as error - no 'object' file generated" 原因是 ...
- caffe编译报错解决
添加ssd中的一些层之后,编译报错: ../lib/libcaffe.so.1.0.0-rc5:对‘boost::match_results<__gnu_cxx::__normal_iterat ...
- win7 X64 使用VS2008 ->编译报错LINK : fatal error LNK1000: Internal error during Incr的解决
编译报错LINK : fatal error LNK1000: Internal error during Incr的解决 Win7 旗舰版 Microsoft Visual Studio 2008 ...
随机推荐
- Hadoop-2.7.5完全分布式搭建
1.在虚拟机上安装Hadoop完全分布式准备工作 1)这里使用的是VMWare软件,在VMWare上安装一个CentOS6.5,并再克隆两个机器配置相关MAC地址,以及配置机器名 2)三台虚拟机配置好 ...
- DB 分库分表(5):一种支持自由规划无须数据迁移和修改路由代码的 Sharding 扩容方案
作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段.简单地说,Sharding就是将原来单一 ...
- Java中的多线程技术全面详解
本文主要从整体上介绍Java中的多线程技术,对于一些重要的基础概念会进行相对详细的介绍,若有叙述不清晰或是不正确的地方,希望大家指出,谢谢大家:) 为什么使用多线程 并发与并行 我们知道,在单核机器上 ...
- TCP层accept系统调用的实现分析
inet_csk_accept函数实现了tcp协议accept操作,其主要完成的功能是,从已经完成三次握手的队列中取控制块,如果没有已经完成的连接,则需要根据阻塞标记来来区分对待,若非阻塞则直接返回, ...
- VUE中让由全局变量添加生成的新数组不随全局变量的变化而变化
问题场景: const addOptions = { singleOrComplex, totalNum: this.smallTotalPrice, selectList: this.purchas ...
- koa 基础(十五)cookie 设置中文
1.app.js // 引入模块 const Koa = require('koa'); const router = require('koa-router')(); /*引入是实例化路由 推荐*/ ...
- HashMap三两事
前言 JDK8中对HashMap做了优化,依然是用数组存储数据,但是扩容时采用双链表的方式避免了高并发情况下导致出现循环链表的问题,另外也引入了红黑树,提高碰撞元素的搜索速度. 一段代码 下面这段代码 ...
- OSI的七层模型和TCP/IP的五层模型
OSI七层模型: 应用层->表示层->会话层->传输层->网络层->数据链路层->物理层 TCP/IP五层模型: 应用层->传输层->网络层->数 ...
- Python全栈开发第5天作业
作业一:1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) 2) 将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加) 3) 将/1.txt. ...
- OGG-00446 分析与解决
OGG-00446 分析与解决 Table of Contents 1. 00446 1.1. Missing filename opening checkpoint file 1.1.1. 错误信息 ...