今天在写代码时犯了一个挺低级的错误,所以记录在此,以免以后再犯。
代码其实很简单,就是用string的replace方法,如下:
public void doFilter() {
// TODO Auto-generated method stub
String mes = "This is a < script >";
mes.replace('<', '[').replace('>', ']');
//mes += "---HtmlFilter----";
System.out.println(mes);
}
但打印输入的一直是This is a < script >,开始还以为是replace方法没有起作用。在看了replace方法的源码以后才恍然大悟,源码如下:
public String replace(char oldChar, char newChar) {
if (oldChar != newChar) {
int len = count;
int i = -1;
char[] val = value; /* avoid getfield opcode */
int off = offset; /* avoid getfield opcode */
while (++i < len) {
if (val[off + i] == oldChar) {
break;
}
}
if (i < len) {
char buf[] = new char[len];
for (int j = 0 ; j < i ; j++) {
buf[j] = val[off+j];
}
while (i < len) {
char c = val[off + i];
buf[i] = (c == oldChar) ? newChar : c;
i++;
}
return new String(0, len, buf);
}
}
return this;
}
从源码我们可以看到,replace方法中,如果替换字符后,它是返回一个重新new的string对象,原来的字符串是没有变的。所以用replace方法时一定要有一个string的变量接受替换的结果。所以最初的方法应该做如下改动:
public void doFilter() {
// TODO Auto-generated method stub
String mes = "This is a < script >";
String temp = mes.replace('<', '[').replace('>', ']');
//mes += "---HtmlFilter----";
System.out.println(temp );
}
这样输出如愿的字符串了。
分享到:
相关推荐
本文将深入解析`String`类的一些常用方法,帮助开发者更好地理解和使用这个核心类。 1. **构造方法** - `String()`:创建一个空字符串。 - `String(char[] value)`:根据字符数组创建字符串。 - `String(String ...
在Java编程语言中,`String`类提供了多种方法来处理字符串,其中之一便是`replace()`方法。这个方法主要用于在字符串中替换指定的字符或子串,返回一个新的字符串,原字符串不会被改变,因为Java中的字符串是不可变...
在Java编程语言中,`String`类提供了许多用于操作字符串的方法,其中之一便是`split`方法。这个方法在处理文本数据时极为有用,特别是在需要根据特定的分隔符将字符串分割成多个子串的情况下。下面,我们将深入探讨`...
内容概要:本文详细介绍了Java中String类的关键特性和常用操作方法。首先阐述了String类作为不可变对象的特点以及Java虚拟机为此设立的字符串池机制,确保了内存的有效利用。接着列举并解释了多个实用的方法,如...
总之,`char`和`String`在Java中扮演着重要角色,它们提供的丰富函数方法使得处理文本数据变得简单高效。理解和熟练使用这些方法是Java编程的基本功,对于开发涉及文本处理的应用尤其关键。通过深入学习和实践,...
### 有关Java String常用方法的总结 #### 一、String 类概述 `String`类是Java中最基础也是最重要的数据类型之一,在Java中被定义为一个不可变类(immutable class),这意味着一旦一个`String`对象创建之后,其...
此外,对于一些特定的字符串处理需求,Java标准库中还提供了诸如trim、replace、replaceAll、getBytes等丰富的方法来进行各种复杂的字符串操作。 通过这些操作,Java程序可以灵活地处理字符串数据,满足各种编程...
Java中String类是用于处理字符串的重要工具,提供了许多方法用于字符串的创建、比较、长度计算、大小写转换、查找和替换等操作。以下是一些常见的字符串处理问题及其解决方案的详细解析: 首先,创建字符串对象。在...
在"java实现HTML解析图片批量下载"这个项目中,我们将主要关注两个核心部分:HTML解析和图片下载。 首先,我们需要引入Jsoup库。在你的`pom.xml`文件(如果你使用的是Maven)中添加以下依赖: ```xml <groupId>...
Java中的字符串处理是编程工作中非常常见且重要的任务,而String工具类则提供了许多方便实用的方法,使得我们在处理字符串时能够更加高效。以下是对Java String工具类的详细解析: 首先,了解Java中的String类。在...
在这个Java类中,定义了一个静态方法`replace`,该方法接收一个字符串参数,并将字符串中的"unmi"替换为"unmi.cc"。 ##### 3. XML 输入文件 (example.xml) ```xml <name>unmi <blog>http://unmi.cc</blog> ...
总之,理解Java中的String类,特别是它的创建方式、常量池以及`intern()`方法的工作原理,对于编写高效、内存友好的代码至关重要。在实际编程中,根据需求合理选择创建和操作字符串的方法,可以避免不必要的内存开销...
Java String 源码和 String 常量池的全面解析 Java String 源码和 String 常量池是 Java 语言中非常重要的两个概念,它们之间存在着紧密的联系。在 Java 语言中,String 类是不可变的,finalize 方法被禁用,以确保...
Java.lang.String类是Java语言中的一种基本数据类型,该类的定义、字段属性、构造方法、equals方法、hashCode方法、charAt方法、compareTo方法、concat方法、indexOf方法、replace方法、split方法、substring方法、...
`replace()` 方法用于替换字符串中的字符或子字符串。 - **方法签名**: - `String replace(char original, char replacement)` - `String replace(CharSequence original, CharSequence replacement)` - **示例...
然后在Java代码中配置FreeMarker并解析模板: ```java // 加载配置 Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg.setClassForTemplateLoading(this.getClass(), "/"); // 获取模板 ...
在Java编程中,有时我们需要将字符串(String)数据转换为其他数据类型,比如将字符串表示的数字转换为浮点数(Double)。当涉及到二维数组时,这个过程可能会稍微复杂一些。本文将详细介绍如何将一个包含浮点数字符...
1. **charAt(int index)**:此方法允许通过提供一个整数索引来检索`String`中的单个字符。例如,`str.charAt(0)`将返回字符串`str`的第一个字符。 2. **indexOf()系列方法**: - `indexOf(int ch)`:返回指定字符...
- StringTokenizer 是用来解析字符串成多个子串的工具类,常用构造方法为 `StringTokenizer(String str, String delimiters)`,并提供 `nextToken()` 方法来获取下一个分隔后的子串。 6. **StringBuffer 类**: -...