当前位置:首页 » 编程语言 » java中字符替换

java中字符替换

发布时间: 2023-06-01 09:50:13

1. java怎么把一个字符串中的字符替换成别

先看下概念,最后面有说到修改

一.Java字符串类基本概念

在JAVA语言中,字符串数据实际上由String类所实现的。Java字符串类分为两类:一类是在程序中不会被改变长度的不变字符串;二类是在程序中会被改变长度的可变字符串。Java环境为了存储和维护这两类字符串提供了
String和StringBuffer两个类。
一、创建字符串
例: Stringstr=new("This is a String");

或者 Stringstr="This is a String";

二、得到字符串对象的有关信息
1.通过调用length()方法得到String的长度.
例:

String str="Thisis a String";
int len =str.length();

2.StringBuffer类的capacity()方法与String类的 length()的方法类似,但是她测试是分配给StringBuffer的内存空间的大小,而不是当前被使用了的内存空间。
3.如果想确定字符串中指定字符或子字符串在给定字符串的位置,可以用 indexOf()和lastIndexOf()方法。

String str="Thisis a String";
Int index1 =str.indexOf("i"); //index=2
Intindex2=str.indexOf(‘i‘,index+1); //index2=5
Intindex3=str.lastIndexOf("I"); //index3=15
Intindex4=str.indexOf("String"); //index4=10


三、修改可变字符串
StringBuffer类为可变字符串的修改提供了3种方法,在字符串中间插入和改变某个位置所在的字符。
1.在字符串后面追加:用append()方法将各种对象加入到字符串中。
2.在字符串中间插入:用insert()方法。例

StringBuffer str=new StringBuffer("Thisis a String");
Str.insert(9,"test");
System.out.println(str.toString());


这段代码输出为:Thisis a test String
3.改变某个位置所在的字符,用setCharAt()方法。
StringBuffer sb =new StringBuffer("aaaaaa");

sb.setCharAt(2, “b”);// 结果aabaaa

2. 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初学者有帮助。

3. java字符串替换怎么弄

例如轿差x0dx0a public static void main(String[] args) {x0dx0a Scanner scn = new Scanner(System.in);x0dx0a String a = scn.next();x0dx0a String b = scn.next();x0dx0a String c = scn.next();x0dx0a String d = a.replaceAll(b, c);x0dx0a System.out.println(d);x0dx0a } x0dx0ax0dx0aa.replaceAll(b,c); 就是 把字符串a中, 符山哗合逗帆行规则 b 的字符, 替换成c

4. java怎么把一个字符串中的字符替换成别的字符

如何将字符串中的"\"替换成"\\":
String msgIn;
String msgOut;
msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");
原因:
'\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\。
同样
CODE: \\\\\\\\
Java: \\\\
Regex: \\

将字符串中的'/'替换成'\'的几种方式:
msgOut= msgIn.replaceAll("/", "\\\\");
msgOut= msgIn.replace("/", "\\");
msgOut= msgIn.replace('/', '\\');

将字符串中的'\'替换成'/'的几种方式:
msgOut= msgIn.replaceAll("\\\\","/");
msgOut= msgIn.replace("\\","/");

5. 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 匹配非单词边界

A 匹配文本开头

G 匹配前一匹配项结尾

 输入的结尾,仅用于最后的结束符(如果有的话)

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("有汉字");


  • }


6. java如何实现替换指定位置的指定字符串的功能

可以使用StringBuffer定义字符串,之后使用replace方法替换指定位置的字符串为指定的字符串内容,如下代码:
public
class
Demo1
{
public
static
void
main(String[]
args)
{
StringBuffer
buffer
=
new
StringBuffer("123456");
System.out.println(buffer.toString());//输出123456
buffer.replace(0,
1,
"a");
System.out.println(buffer.toString());//输出a23456
}
}
这里简单介绍一下replace方法的使用,replace方法一共有三个参数,第一个参数是指定要替换的字符串的开始位置,第二个参数是指定要替换的字符串的结束位置(注意这里的结束位置不包括本身),第三个参数是指定想将字符串替换成什么内容。
如:原字符串内容为"123456",现在调用replace(0,
2,
"abc"),原字符串变为"abc3456"

7. JAVA中不使用replace()方法和replaceAll()方法怎样替换字符常中的字符

在Java中,可以使用字符数组来替换字符串中的字符。具体迟余哪步骤如下:

  • 将字符串转换为字符数组。

  • 循环遍历字符数组,找到需要替换的字符,并进行替换。

  • 将修改后的字符数组转换回字符串。

  • 以下是示例代码:

String str = "hello world";

char[] charArray = str.toCharArray();

for (int i = 0; i < charArray.length; i++) {

if (charArray[i] == 'l') {

charArray[i] = 'p';

}

}

String newStr = new String(charArray);

System.out.println(newStr); // 输出 "heppo worpd"

在上面的代码中,我们将字符串"hello world"转换为字符数组,然后使用循环遍历字符数组,找到需要替换的字符"l"并将其替换为"p"。最后,我们将修改后的字符数组转换为新的毁没字符串"heppo worpd"并输出。

需要注意的是,此方法只能实现单个字符的替换。如果需要替换多个连续字符,则需要考虑其他算法实码码现。

8. java replaceall 怎么替换

replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
还有一点注意::执行了替换操作后,源字符串的内容是没有发生改变的。
举例如下:

String src = new String("ab43a2c43d");

System.out.println(src.replace("3","f"));=>ab4f2c4fd.

System.out.println(src.replace('3','f'));=>ab4f2c4fd.

System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.

System.out.println(src.replaceAll("a","f"));=>fb43fc23d.

System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d

System.out.println(src.replaceFirst("4","h"));=>abh32c43d.

如何将字符串中的"\"替换成"\\":

String msgIn;

String msgOut;

msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");

原因:
'\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\。
同样
CODE: \\\\\\\\
Java: \\\\
Regex: \\
将字符串中的'/'替换成'\'的几种方式:

msgOut= msgIn.replaceAll("/", "\\\\");

msgOut= msgIn.replace("/", "\\");

msgOut= msgIn.replace('/', '\\');

通过实例区分了java中replace()和replaceAll()的不同点,希望本文对大家学习有所帮助

9. java怎样将一个字符串中指定位置的字符换掉,从而得到一个新的字符串

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

10. java怎样将字符串中的字母替换掉

一:思路:

使用java方法replaceAll();通过正则表达式匹配替换掉所有的字母。

二:代码如下(可直接复制出来运行,在控制台中查看效果):

publicstaticvoidmain(String[]args){
Stringstr="abc123123成你懂吗bxcxsaf";
//通过正则表达式替换掉所有的字母
StringstrNew=str.replaceAll("[a-zA-Z]","");
System.out.println(strNew);
}

运行结果如下:

三:扩展(正则表达式)

正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多情况下,通常被用来,检索和替换符合某个规则的文本。

PS:有兴趣可以深入研究一下正则表达式的语法,及规则。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:376
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:610
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:941
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371