今天在写代码时犯了一个挺低级的错误,所以记录在此,以免以后再犯。
代码其实很简单,就是用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`方法。这个方法在处理文本数据时极为有用,特别是在需要根据特定的分隔符将字符串分割成多个子串的情况下。下面,我们将深入探讨`...
总之,`char`和`String`在Java中扮演着重要角色,它们提供的丰富函数方法使得处理文本数据变得简单高效。理解和熟练使用这些方法是Java编程的基本功,对于开发涉及文本处理的应用尤其关键。通过深入学习和实践,...
### 有关Java String常用方法的总结 #### 一、String 类概述 `String`类是Java中最基础也是最重要的数据类型之一,在Java中被定义为一个不可变类(immutable class),这意味着一旦一个`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 类**: -...
JAVA中常用类的常用方法主要涵盖了java语言中基础类库的关键类以及它们提供的主要方法。以下是针对文档内容的详细解释: 1. java.lang.Object类 Object类是Java中所有类的超类,它提供了多种方法,这些方法在Java中...
在Java中,字符串被视为对象,因此我们可以通过调用String类的各种方法来处理字符串。以下是一些常用的String类方法的详细说明: 1. 构造函数: - `String(byte[] bytes)`: 这个构造函数接收一个字节数组,并根据...
在Java编程中,字符串的处理是一项基本而重要的技能,尤其是在文本处理、数据解析和用户界面交互等场景中。本篇将基于《java字符串的处理.pdf》的内容,深入探讨Java中字符串的基本概念、处理方式以及相关类库的使用...