在项目中遇到过这么一个问题,一段字符替换的代码:
/**
* 字符串替换
*/
public static String replaceDoc(String doc, String repDoc)
{
return doc.replaceAll (repDoc, "");
}
/**
* 测试1
*/
public static void main(String[] args) {
String a = "a.doc,b.doc,a.doc,";
String b = "a.doc";
System.out.println(replaceDoc(a, b));
}
结果:"b.doc,"运行正常
但在投入试运行后,发现这个方法不能正常运行,用户传入参数( a = "a.doc[1],b.doc,a[1].doc,",b = "a[1].doc";)
/**
* 测试2
*/
public static void main(String[] args) {
String a = "a.doc[1],b.doc,a[1].doc,";
String b = "a[1].doc";
System.out.println(replaceDoc(a, b));
}
结果:"a.doc[1],b.doc,a[1].doc,"
参考了下api,发现
replaceAll(String regex, String replacement)
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式
的每个子字符串。
replaceFirst(String regex, String replacement)
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式
的第一个子字符串。
而“[”、“]”在正则表达式中为
特殊字符
,被保留作特殊用途。
这样,虽然你传递了字符串编译就会没有问题,但是你传的不是正则表达式,到了java虚拟机中之后,
java不认识你传递的表达式,也就不会去替换任何东西,所以执行结果也只能是"a.doc[1],b.doc,a[1].doc,"。
后来我用replace替换了
replaceAll
,问题解决。
分享到:
相关推荐
Java中的`replace`、`replaceAll`和`replaceFirst`是字符串操作中常见的方法,用于替换字符串中的特定子串。它们都是`String`类的方法,但各自有不同的行为和用途。 1. `replace(CharSequence target, CharSequence...
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也是字符串); 2)...
Java 中的字符串 replacement 是一个非常重要的知识点,今天我们就来探讨 Java 中的 replace 和 replaceAll 方法之间的区别。 首先, lets Talk about Java 中的 replace 方法。replace 方法有两个重载方法:...
在这里,原始字符串中的每个 `\` 首先被Java解释为一个实际的 `\`,然后 `replaceAll()` 使用的正则表达式中的 `\\` 转义成 `\`,最终在结果字符串中得到 `\\`。 对于替换 `/` 为 `\`,由于 `/` 在正则表达式中不...
3. `replaceFirst(String regex, String replacement)`:这个方法只替换字符串中第一个匹配正则表达式的部分,而不是全部。与`replaceAll()`的区别在于它不是全局替换。 了解了这些方法后,我们来看一个简单的示例...
其中replace()用于直接替换指定字符或子字符串,而replaceAll()和replaceFirst()则是基于正则表达式分别替换所有匹配项或第一个匹配项的内容,适用于更复杂的文本处理场合。 适用人群:对Java有兴趣的学习者以及希望...
在Java编程语言中,字符串(`String`)是极其重要的一个概念,被广泛应用于各种场景之中。为了更好地理解和运用Java语言,掌握字符串的各种操作方法至关重要。下面将详细介绍Java中字符串的一些关键操作方法及其应用...
5. JDK 6 和 JDK 7 中 substring 的原理及区别、replaceFirst、replaceAll、replace 区别 6. String.valueOf 和 Integer.toString 的区别、字符串的不可变性 7. 自动拆装箱 8. Integer 的缓存机制 9. 熟悉 Java 中...
`replaceAll()`和`replaceFirst()`方法用于替换字符串中的内容,其中`replaceAll()`会替换所有匹配的内容,而`replaceFirst()`只替换第一个匹配的内容。 在JavaScript中,RegExp对象提供了六个常用的方法来处理正则...
只要两个对应位中有一个为1,则结果为1;全为0时,结果为0。 以数字3和6为例: - 数字3的二进制表示为 `0000 0011` - 数字6的二进制表示为 `0000 0110` - 按位与运算的结果为 `0000 0010`,即十进制的2 - ...
Java 中的 String 类提供了三种方法来实现字符串的替换,分别是 replace、replaceAll 和 replaceFirst。 1. replace 方法 replace 方法将字符串中所有出现的 oldChar 字符串替换为 newChar 字符串。如: String ...
标题中的“字符串批量替换小工具(java版)”表明这是一个基于Java编程语言实现的程序,用于处理字符串的批量替换操作。在IT行业中,字符串处理是常见的任务,尤其是在文本处理、数据分析、日志分析等领域。批量替换...
在Java编程语言中,"原码"通常指的是一个程序或函数的原始代码,未经编译或解释的状态。在这个上下文中,"java 原码 过滤器"可能是指一个用于处理文本数据的程序,其目标是过滤掉不适当或不文明的词汇,并用特定符号...
7. **高级用法**:正则表达式还能实现更复杂的操作,如回调函数的使用(JavaScript的`replace()`方法可以接受一个函数作为第二个参数),以及在Java中使用`Matcher`的`group()`方法获取分组信息。 在提供的文件中,...
在 Java 编程中,字符串处理是至关重要的一个部分,因为字符串经常被用来存储和处理文本数据。在 Java 中,字符串被当作对象来处理,而不是像其他一些语言(如 C++)那样作为字符数组。`java.lang.String` 类是 Java...
12. String substring(int beginIndex):返回一个新的字符串,它是此字符串的一个子字符串,从beginIndex开始到字符串结束。13. String substring(int beginIndex, int endIndex):返回一个新的字符串,它是此字符串...
在Java编程语言中,面向对象基础是学习Java的基石,而`String`类则是最常用的类之一,几乎在每一个程序中都会见到它的身影。本章节将深入探讨`String`类的常用方法,帮助你更好地理解和运用这个核心组件。 `String`...
`String`类是Java中最基础也是最重要的数据类型之一,在Java中被定义为一个不可变类(immutable class),这意味着一旦一个`String`对象创建之后,其内容就不能再被修改。`String`类提供了丰富的内置方法来操作字符...
例如,我们可以使用`Regex.IsMatch()`来检查一个字符串是否符合特定的模式,`Regex.Match()`和`Regex.Matches()`用于查找单个或多个匹配项,而`Regex.Replace()`则可以用来替换字符串中的匹配部分。C#中的正则表达式...
Java 支持多线程编程,可以在一个进程中同时执行多个线程。 **1. 创建线程** 可以通过实现 `Runnable` 接口或继承 `Thread` 类来创建线程。 ```java public class MyRunnable implements Runnable { @Override ...