java中字符串“\“和“/“的替换方法以及其它需要转义的字符

1.需要转义的字符列表

转义字符

意义

ASCII码值(十进制)

\a

响铃(BEL)

007

\b

退格(BS) ,将当前位置移到前一列

008

\f

换页(FF),将当前位置移到下页开头

012

\n

换行(LF) ,将当前位置移到下一行开头

010

\r

回车(CR) ,将当前位置移到本行开头

013

\t

水平制表(HT) (跳到下一个TAB位置)

009

\v

垂直制表(VT)

011

\\

代表一个反斜线字符''\'

092

\'

代表一个单引号(撇号)字符

039

\"

代表一个双引号字符

034

\0

空字符(NULL)

000

\ddd

1到3位八进制数所代表的任意字符

三位八进制

\xhh

1到2位十六进制所代表的任意字符

二位十六进制

即字符串中想要'\'则需要加入‘\\’。

2.字符串"\"和"/"的替换方法

String filePicPath = "E:\\allFile\\modelFileExcelImage\\11.png";

filePicPath = filePicPath.replaceAll("\\\\","/");

得到地址E:/allFile/modelFileExcelImage/11.png

原因分析:

'\'在java中是一个转义字符,所以需要用两个代表一个。'\'也是正则表达式中的转义字符(replaceAll的第一个参数就是正则表达式regex),需要用两个代表一个。 所以:\\\\被java转换成\\,\\又被正则表达式转换成\。

### Java 字符串转义字符处理方法Java 编程中,字符串转义字符处理是一项常见的需求。以下是关于如何有效处理 Java 字符串中的转义字符方法。 #### 1. 使用 `String.replace` 替换单个转义字符 如果目标是从字符串中移除某个特定的转义字符(如 `\n` 或 `\t`),可以使用 `replace` 方法替换字符为其他值或为空字符串。例如: ```java public class EscapeCharacterExample { public static void main(String[] args) { String original = "This is a test string with newline:\n and tab:\t"; String result = original.replace("\n", "").replace("\t", ""); System.out.println(result); } } ``` 上述代码通过调用 `replace` 方法去除了原始字符串中的换行符制表符[^1]。 #### 2. 利用正则表达式批量去除多个转义字符 对于更复杂的场景,可能需要一次性删除多种类型的转义字符。此时可借助正则表达式实现这一功能。例如: ```java import java.util.regex.Pattern; public class RegexEscapeRemoval { public static void main(String[] args) { String input = "A line break \\n, a tab \\t, and an escaped backslash \\\\."; Pattern pattern = Pattern.compile("[\\\\][nt]"); String output = pattern.matcher(input).replaceAll(""); System.out.println(output); // 输出清理后的字符串 } } ``` 此示例展示了如何利用正则表达式匹配并清除指定的转义序列[^2]。 #### 3. 防止编译期解析导致意外行为 需要注意的是,在定义包含转义字符字符串时,应确保其按照预期方式被解释。由于 Java 对反斜杠进行了特殊处理,所以在某些情况下需额外注意双反斜杠的应用。比如,为了表示一个普通的反斜杠而非特殊的控制命令,则应在源码里写成两个连续的反斜杠 (`\\`) 来避免误解[^3]。 #### 4. 自定义函数完成复杂转换逻辑 针对更加个性化的业务需求,编写自定义工具类可能是最佳解决方案之一。下面给出了一种通用性的解决思路——创建专门用于净化输入数据的功能模块: ```java public final class StringUtils { private StringUtils() {} /** * Removes common escape sequences from the given string. * * @param str Input string to process. * @return A new string without standard escapes like '\n', '\r' etc.. */ public static String removeEscapes(String str) { if (str == null || str.isEmpty()) return ""; StringBuilder sb = new StringBuilder(); boolean skipNextChar = false; for(int i=0; i<str.length(); ++i){ char c = str.charAt(i); if(skipNextChar){ skipNextChar=false; continue; } switch(c){ case '\\': skipNextChar=true; break; default: sb.append(c); } } return sb.toString(); } } // Usage Example: System.out.println(StringUtils.removeEscapes("Hello world! This contains some special chars such as \\n or \\t.")); ``` 以上片段提供了一个静态实用程序方法 `removeEscapes()` ,它能够遍历整个传入的字符串,并跳过所有的转义标记及其后续的一个字符[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值