JAVA 替换特殊字符 的 正则表达式JAVA 替换特殊字符 的 正则表达式
代码如下:
import java.util.regex.*;
// 表达式对象
Pattern p = Pattern.compile("[\\\'\\*\\~]");
// 创建 Matcher 对象
Matcher m = p.matcher("String str = \"t\'e*s~t\";");
// 替换
String newstring = m.replaceAll("[$0]");
效果如下:
正则参考
Java中怎样找到文件中指定字符串并替换java的String类中使用Replace方法可以将字符串中的特定字符或者文字替换成为我们想要的内容 。
下面我们就用实例说明下Replace的用法 。如何替换文字、特殊字符、以及如何替换第一个匹配对象 。
1.定义一个类文件StringReplace.java
2.类内容如下:
public class StringReplace
{
public static void main(String[] args){
String info = "百d度,经3验,欢迎H你";
info = info.replace(',',':');//将字符串,替换成":"
System.out.println(info);//替换后输出
info=info.replace("欢迎","需要");//将欢迎二字换成需要
System.out.println(info);//替换后输出
info=info.replaceAll("[0-9a-zA-Z]","\\$");//使用正则表达式将数字字母替换为$
System.out.println(info);//输出结果
info = info.replaceFirst("\\$","#"); //使用正则表达式将第一个$替换为#
System.out.println(info);//输出结果
}
}
3.下面我们就可以直接在命令行中用java命令或java运行环境来编译运行上面的代码啦 。希望对java初学者有帮助 。
Java如何替换特殊字符特殊字符是固定Java代码替换特殊字符的吗?如果是的话可以用str.replace("特殊字符","") 。
如果特殊字符可以用Java代码替换特殊字符,可以考虑正则表达式,希望可以帮到你!
java中怎么替换string中的某个字符/¥392931String这个对于程序原来说一定是最熟悉不过的,很多时候我们都习惯去使用String的原生方法去完成查找字符串、替换、删除,而正则表达式由于略显苦涩的语法常常被人忽略,其实很多时候使用正则表达式可以提高不少性能和节省资源 。
一、正则表达式简述
正则表达式正则表达是Java中比较矛盾的知识点,因为使用起来可以很简单也可以相当地有难度,但是对于字符串操作来说应用得当则事半功倍 , 字符串查找,搜索,匹配,替换等等,正则表达式无所不能 。而所谓正则表达式本质就是一个字符串(这个字符串按照一定的语法和规范被构造出来作为限定条件),其主要参与者——Pattern和Matcher:Pattern是Java正则表达式API中的主要入口 , 是程序语言中对这个特殊正则字符串的编译表示 , 需要使用正则表达式,第一步都是从构造Pattern 类开始,而Matcher是输入字符串进行解释和匹配操作的引擎,通过解释 Pattern 对 Character sequence 执行匹配操作(即Matcher负责完成字符串的查找、匹配、替换等操作 。)
二、正则表达式基本语法
1、预留字符
限定符
说明
.任意英文字母
\反斜杠, 单独的反斜杠做为转义字符,与其他特殊字符一起使用 。如果想匹配反斜杠本身,需要转义 。两个反斜杠实际匹配一个反斜杠n字符的8进制表示.n 在0至7之间取值
nn字符的8进制表示.n 在0至7之间取值
mnn字符的8进制表示. m 在0至3之间取值, n 在0至7之间取值
\xhh字符的16进制表示.
\uhhhh字符的16进制表示 0xhhhh. 对应unicode 编码字符
\t缩进符.
\n换行符 (unicode: ‘’)
\r回车符 (unicode: ‘’)
\f制表符 (unicode: ‘’)
\a警报(铃声)字符 (unicode: ‘′)
\e转义符 (unicode: ‘’)
\cx控制符 x
\d匹配任意数字 [0-9]
\D匹配任意非数字 [^0-9]
\s匹配任意空白符 (空格, 缩进, 换行,回车)
\S匹配任意非空白符
\w匹配任意单词
\W匹配任意非单词
2、设置指定限定条件[](即“[]”表示的是中括符里的内容是条件)
限定符
说明
[a-z]匹配小写a to z范围中任一个字符,又如[abc] 匹配 a, 或 b 或 c
[A-Z]匹配大写A to Z范围中任一个字符
[a-zA-Z]匹配小写a to z或大写A to Z范围中一个字符
[0-9]匹配小写0 to 9范围中一个字符
[0-9a-z]匹配小写0 to 9或a to z范围中一个字符
[0-9[a-z]]匹配小写0 to 9或a to z范围中一个字符(交集)
[^abc]匹配不是a,b,c 的字符,是否定匹配
[a-zA-Z]匹配a 到 z,A到Z 直接的字符,是范围匹配
[a-d[m-p]]匹配a到d之间字符或 m到p之间字符,是并集匹配
[a-z[def]]匹配 d, e, 或 f. 是交集匹配 (这里是在范围 a-z和字符def之间取交集).
[a-z[^bc]]匹配a-z 之间所有字符,排除bc的字符 。是减法匹配
[a-z[^m-p]]匹配a-z 之间所有字符,排除m-p之间的字符是减法匹配
3、边界匹配
边界符
说明
^匹配行首
$匹配行尾
\b匹配单词边界
\B匹配非单词边界
\A匹配文本开头
\G匹配前一匹配项结尾
\Z输入的结尾,仅用于最后的结束符(如果有的话)
\z匹配文本结尾
4、逻辑操作符和量词表示
正则表达式支持少量的逻辑运算(与 , 或) 。与操作是默认的,表达式 cmo,意味着c 与 m与o 。
或操作需要显示指定 , 用 | 表示 。例如表达式 crazy|mo意味着crazy或 mo 。
贪婪模式
饥饿模式
独占模式
说明
X?X??X?匹配0或1次,即出现X 0或者1次
X*X**?X*匹配0或多次
XX ?X匹配1或多次
X{n}X{n}?X{n}匹配n次
X{n,}X{n,}?X{n,}匹配最少n次
X{n, m}X{n, m}?X{n, m}匹配最少n次,最多m次
三、正则表达式的应用
编译正则表达式的字符串值构造对应的模式Pattern对象
创建匹配给定输入与此模式的匹配器Matcher
通过匹配器对象执行操作 , 匹配器对象的方法很丰富,互相组合使用更加强大(JDK在线API)
1、去掉字符串中的空格和换行符
public static String getNonBlankStr(String str) {
if(str!=null!"".equals(str)) {
Pattern pattern = Pattern.compile("\\s*|\t|\r|\n"); //去掉空格符合换行符
Matcher matcher = pattern.matcher(str);
String result = matcher.replaceAll("");
return result;
}else {
return str;
}
}12345678910
2、去掉指定特殊字符
publicstaticString StringFilter(Stringstr)throws PatternSyntaxException {// StringregEx="[^a-zA-Z0-9]"; // 只允许字母和数字
// 清除掉所有特殊字符(除了~之外)
String regEx="[`!@#$%^*() =|{}':;',//[//]./?!@#¥%……*()—— |{}【】‘;:”“’ 。,、?]";
Pattern pattern=Pattern.compile(regEx);
Matcher matcher=pattern.matcher(str);returnmatcher.replaceAll("").trim();
}123456789
3、Pattern.matches()检查字符串中是否存在指定字符
String text= "there are many hotels ""by amap.the adrr:pattern.";String pattern = ".*http://.*";
boolean matches = Pattern.matches(pattern, text);//true则存在123
4、Pattern.split()用正则表达式作为分隔符,把文本分割为String类型的数组
/**
* 结果:element =grjk Text
element =wwwdsf
element =Many
element =egsdg r geg
*/String text = "A reg grjk Text reg wwwdsf reg Many reg egsdg r geg";
String patternString = "reg";
Pattern pattern = Pattern.compile(patternString);
String[] split = pattern.split(text);for(String element : split){
System.out.println("element = "element);
}1234567891011121314
5、Matcher 实例的find()start()end()寻找字符串中指定字符串出现的次数和起始和结束的索引位置
/**
*结果:found: 1 : 2 - 4
found: 2 : 5 - 7
found: 3 : 23 - 25
found: 4 : 70 - 72
*/String text="This is the text which is to be searched ""for occurrences of the word 'is'.";
String patternString = "is";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(text);int count = 0;while(matcher.find()) {
count;
System.out.println("found: "count" : "matcher.start()" - "matcher.end());
}12345678910111213141516
6、Matcher 匹配指定格式的特殊字符串
Pattern pattern = Pattern.compile("[0-9]*");//判断是否都是数字
Matcher isNum = pattern.matcher("1123是数字");
if(isNum.matches()) {
System.out.println("全部是数字");
} else {
System.out.println("有汉字");
}
Java替换特殊字符的方法是什么 做好Java必须会的内容就在这里了Java替换特殊字符的方法是什么?在本实例中为保证学生输入的 Java 文件名合格Java代码替换特殊字符,将利用 StringBuffer 类实现对 Java 文件名中的特殊符号进行替换,包括将中文状态下的“ 。”和全角状态下的“.”替换为英文状态下的“.” 。
在本例实现过程中主要使用了 StringBuffer 类的字符查找和替换方法,实现用Java替换特殊字符代码如下Java代码替换特殊字符:
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
System.out.println("请输入Java代码替换特殊字符你要提交的Java文件名称:");
Scanner input = new Scanner(System.in);
String fileName = input.next(); // 获取用户输入的 java 文件名称
// 定义StringBuffer对象,字符串内容为用户输入的java文件名称
StringBuffer file = new StringBuffer(fileName);
// 获取英文状态下的"."是否存在
int index = file.lastIndexOf(".");
// 判断中文状态下的" 。"和"."是否存在
int errIndex1 = file.lastIndexOf(" 。");
int errIndex2 = file.lastIndexOf(".");
if (index != -1file.substring(index1, file.length()).equals("java")) {
System.out.println("作业提交成功!");
【Java代码替换特殊字符 java 替换字符】} else if (errIndex1 != -1file.substring(errIndex11, file.length()).equals("java")) {
// 将中文状态下的" 。"改为英文状态下的"."
file.setCharAt(errIndex1, '.');
System.out.println("Java代码替换特殊字符你的书写有误 , 已改正为:"file"rn提交成功!");
} else if (errIndex2 != -1file.substring(errIndex21, file.length()).equals("java")) {
// 将全角状态下的"."改为英文状态下的"."
file.setCharAt(errIndex2, '.');
System.out.println("你的书写有误,已改正为:"file"rn提交成功!");
} else {
System.out.println("你提供的java文件名称有误 , 请核实!");
}
}
}[page]
Java替换特殊字符的方法是什么?运行该用Java替换特殊字符程序,当用户录入的 Java 文件名称中的为中文状态的“ 。”和“.”时,修改为英文状态下的“.”,然后再进行提交,如下所示:
请输入你要提交的Java文件名称:
myexapmle 。java
你的书写有误,已改正为:myexample.java
在该程序中,实现替换特殊字符步骤如下所示:
定义了一个 String 类型的变量,并赋值为用户输入的 Java 文件名称 。
使用 StringBuffer 的 StringBuffer(String str) 构造函数将该变量的值作为 StringBuffer 对象的值 。
获取用户输入字符串中(英文和中文)的位置 。
使用多重 if 选择语句判断用户输入的字符串中是否包含英文状态下的,并且后面的字符串是否为“java”,如果条件成立,则表示用户输入的信息无误,提交成功 。
在 else if 中判断用户输入的字符串中是否包含中文状态下的“ 。”和“.”,并且“ 。”和后面的字符串为“java”,如果判断通过 , 则调用 StringBuffer 类中的 setCharAt() 方法修改“ 。”为“.”,再提交 。
本篇《Java替换特殊字符的方法是什么?这些内容才是做好Java必须会的》到这里就已经结束了 , 并不是所有的数据类型都可以指定直接数量 , 通常只有三种类型:原语、字符串和NULL,环球网校的小编祝您PHP学习之路顺利,如果你还想知道更多Java知识 , 那么可以点击本站的其Java代码替换特殊字符他文章进行学习 。
java替换特殊字符,${1} 怎么能替换成 一个字符串import java.util.Scanner;
public class Test5 {
public static String getInputString(int type) {
Scanner scan = new Scanner(System.in);
switch (type) {
case 1:System.out.print("输入字串:");break;
case 2:System.out.print("要查找字串为:");break;
case 3:System.out.print("要替换的字串为:");break;
}
String s=scan.nextLine();
return s;
}
public static void main(String[] args) {
String str=getInputString(1);
String target=getInputString(2);
String replace=getInputString(3);
int i=0;
while (str.indexOf(target)!=-1) {
i =1;
str=str.replaceFirst(target, replace);
}
System.out.println("共替换" i "次");
System.out.println("替换后结果如下:");
System.out.println(str);
}
}
Java代码替换特殊字符的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于java 替换字符、Java代码替换特殊字符的信息别忘了在本站进行查找喔 。
推荐阅读
- javamysql并发更新数据库,java mysql批量更新
- 角色扮演单人闯关游戏,单人角色扮演游戏有哪些
- 虎牙可以看奥运直播吗手机,虎牙可以看欧洲杯吗
- php数组数据丢失 php数组数据丢失怎么办
- 对象init和js对象的区别,js里对象是什么
- 怎么让电脑需要重装,电脑怎么样重新装系统而不删除原来已安装的软件
- 妹妹恋爱养成类手机游戏,妹妹恋爱养成类手机游戏
- linux查防火墙命令 linux 查看防火墙命令
- 外国民评论华为鸿蒙系统,人民日报评论华为鸿蒙系统