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 编码字符
缩进符.

换行符 (unicode: ‘\u000A’)
回车符 (unicode: ‘\u000D’)
\f 制表符 (unicode: ‘\u000C’)
\a 警报(铃声)字符 (unicode: ‘\u0007′)
\e 转义符 (unicode: ‘\u001B’)
\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或多次
X+ X+? 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*|||
"); //去掉空格符合换行符
Matcher matcher = pattern.matcher(str);
String result = matcher.replaceAll("");
return result;
}else {
return str;
}
} 12345678910
2、去掉指定特殊字符
public static String StringFilter(String str) throws PatternSyntaxException { // String regEx = "[^a-zA-Z0-9]"; // 只允许字母和数字
// 清除掉所有特殊字符(除了~之外)
String regEx="[`!@#$%^&*()+=|{}':;',//[//]./?!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str); return matcher.replaceAll("").trim();
}123456789
3、Pattern.matches()检查字符串中是否存在指定字符
String text = "there are many hotels " +"by amap.the adrr: http://xxxx 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("有汉字");
}

#include
#include
#include
(此处空一行)
using namespace std;
int main()
{
string str="123/421657/abcd///456789";
(此处空一行)
cout << str << endl;
replace(str.begin(),str.end(),'/',' ');
cout << str << endl;
return 0;
}
注:使用StringBuilder来构建字符串,然后可以使用strBuilder.setCharAt(1, '');来修改某一字符,如果要将字符串的所有特定字符全部替换,string中可以使用replaceAll("","");方法。

扩展资料:String字符串操作
replace(oldChar, newChar)方法参数1:要被替换的字符,参数2:替换进去的字符
该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:
String s = "abcde8fghijk8lmn";
String a = s.replace('8', 'Q');
a的值为"abcdeQfghijkQlmn"

publicclassTestString{publicstaticvoidmain(String[]args){Stringa="StringGo";String[]b={"a","b","o"};//得到字符串中最后一个字符//注意最好在接受的时候用char类型的包装类CharacterCharacterlastChar=a。charAt(a。length()-1);

for(inti=0;i<b。length;i++){if(lastChar。toString()。equals(b[i])){b[i]="替换";}}for(inti=0;i<b。length;i++){System。out。println(b[i]);

字符串在存储上类似字符数组

它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

以上内容参考:百度百科-字符串



i、replace方法
该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:

String s = “abcat”;
String s1 = s.replace(‘a’,‘1’);

该代码的作用是将字符串s中所有的字符a替换成字符1,生成的新字符串s1的值是“1bc1t”,而字符串s的内容不发生改变。
如果需要将字符串中某个指定的字符串替换为其它字符串,则可以使用replaceAll方法,例如:

String s = “abatbac”;
String s1 = s.replaceAll(“ba”,“12”);

该代码的作用是将字符串s中所有的字符串“ab”替换为“12”,生成新的字符串“a12t12c”,而字符串s的内容也不发生改变。
如果只需要替换第一个出现的指定字符串时,可以使用replaceFirst方法,例如:

String s = “abatbac”;
String s1 = s. replaceFirst (“ba”,“12”);

该代码的作用是只将字符串s中第一次出现的字符串“ab”替换为字符串“12”,则字符串s1的值是“a12tbac”


★在AVA游戏里怎么打?
★,用搜狗输入法,输入“五角星”,就可以找到,你是要用这个游戏名字吧? 只有用了改名卡才可以输入这个符号,不然属于非法字符,改名卡15块钱一张! 在AVA的官方网站商城购买,只可以用Q币!

AVA为什么这么LJ?开个房间就说非法什么什么什么的...
那是因为你的房间名字包含非法字符!AVA的任何名字和语言,都不能包含:标点符号、空格、火星文以及不文明语言等等。只要是AVA的玩家都知道!只有你S\/.B

ava改名卡可以用什么字符??
是字符的都不可以,输入法打出来的也不可以

战地之王更名卡也不能用特殊字符???高分!!!求解释!
楼主您好谁告诉你的改名卡可以该特殊字符的。这个在创建的时候就一样的。不管是创建角色还是更名卡。AVA会定期的封掉一些特殊的字符。有些字符原来能打,但是现在已经被定为非法字符了。望采纳、

String Stringbuffer和StringBuilder的区别?
ava.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是...

java 中string类怎么实现
ava字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生。一、从根本上认识java.lang.String类和String池 首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点。从中可以看到:1、String类是final的,不可被继承。public...

windows7下玩AVA时总出现0x77d16b90指令引用的0x0000009c内存。该内...
答案【原创】严禁复制&。朋友!如果你用其它办法解决的问题,请说出:供其他朋友解决问题。谢谢!!!这个问题的出现比较普遍,主要有几个方面:●㊣●如果使用盗版系统,有可能会出现这样的问题,建议:使用正版。★★★☆如果对电脑没有影响或偶尔出现不用管它,重启电脑会自动消失。【1】病毒引起的,对电...

AVA名字:阿道夫灬希特勒 是非法字符么 急急急急急急急急急急急急急...
对于和谐社会来说,阿道夫-希特勒本身就是非法的存在,所以游戏里很可能会屏蔽一些字,如果真喜欢这个名字,建议改个谐音字

JAVA正则表达式
http:\/\/blog.pfan.cn\/iamben250\/34352.html这是我的blog上面的详细介绍。配中文字符的正则表达式: [\一-\龥]匹配双字节字符(包括汉字在内):[^\\x00-\\xff]应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){return this.replace([^\\x00-\\...

AVA战地之王怎么看现有的ID名
这个问题好办:楼主你不必担心浪费钱的问题,如果你想改的名字,已被别人使用的话。会提示你该ID已被注册或使用。建议你用其他的昵称。如果同意你修改名字的话,就肯定能修改成功。大可不必担心。不可改名的两种原因:1.改昵称已被使用 2.使用了禁止使用的非法字符 在官网买了更名卡之后,要使用改名...

南木林县13484587060: java怎么替换字符串某个字符 -
丙奋塞而: replace方法 该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串.经过该方法调用以后,原来的字符串不发生改变.例如:String s = “abcat”; String s1 = s.replace('a','1');该代码的作用是将字符串s中所有的字...

南木林县13484587060: java怎么把一个字符串中的字符替换成别的字符 -
丙奋塞而: 如何将字符串中的"\"替换成"\\":String msgIn;String msgOut;msgOut=msgIn.replaceAll("\\\\","\\\\\\\\"); 原因:'\'在java中是一个转义字符,所以需要用两个代表一个.例如System.out.println( "\\" ) ;只打印出一个"\"....

南木林县13484587060: java怎么替换字符串中的字符 -
丙奋塞而: public static void main(String[] args) { String str="some str"; str=str.replace('s','a'); // 按字符来进行替换,所有字符会被替换 str=str.replace("a","s"); // 按字符串来进行替换,指替换第一个匹配的 str=str.replaceAll("s","a");// 按字符串来进行替换,所有字符会被替换 }

南木林县13484587060: 请问java怎么把一个字符串中的字符替换成别的字符 -
丙奋塞而: String a="aaaab"; a=a.replace('b','a');

南木林县13484587060: 如何替换字符串中某一位的字符 -
丙奋塞而: java字符串替换 一般使用substring() 和replace()方法组合使用达到精确替换的目的. str.substring(0,1) 可以截取str字符串第一位字符.通过下标控制截取长度.可获得精确字符串 str.replace("a","b"); 把str字符串中所有的字符a都替换成字符b

南木林县13484587060: Java中怎样找到文件中指定字符串并替换 -
丙奋塞而: 思路如下:1.逐行读取文件2.对每行字符串进行分析,如果存在要找的字符串,就替换. if (line.indexOf(要查找的字符串) != -1) { line.replaceAll(要查找的字符串,要替换的字符串); }

南木林县13484587060: java string中的替换字符串 -
丙奋塞而: 1、JAVA中,char占2字节,16位.可在存放汉字 2、java中replace用法举例: replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的.如下所示:String sentence1 = "...

南木林县13484587060: java怎么把一个字符串中的字符替换成别 -
丙奋塞而: 不知你要的是不是这个答案? public class TestString{public static void main(String[] args) {String a = "StringGo";String[] b = {"a","b","o"}; //得到字符串中最后一个字符//注意最好在接受的时候用char类型的包装类Character...

南木林县13484587060: JAVA怎么替换字符串中的符号,如;:00594510=2609013500152=5801? -
丙奋塞而: java中的字符串替换应该用字符串自带的方法replace或者replceAll,但这里要用replaceAll,因为要替换多个符号,只有replaceAll可以接受正则表达式 replaceAll接受两个参数,第一个是正则表示,第二个是要替换后的字符 示例代码如下:public static void main(String args[]) { String s = ";:00594510=2609013500152=5801?"; System.out.println(s.replaceAll(";|:|=|\\?","")); }运行结果如下

南木林县13484587060: Java怎么使用replace替换字符串中的某一位的字符 -
丙奋塞而: 实现思路:先获取到特定位置的字符,之后直接替换即可 public class strRepalce { public static void main(String[]args){//要替换的一个字符串 String str="abcmdf";//获取指定字符位置 例如取 替换c字符 int i=str.indexOf("c");//str.charAt(i) 取...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网