當前位置:首頁 » 編程語言 » java替換字元

java替換字元

發布時間: 2022-02-14 23:47:35

java替換字元串內的字元

上面那個有一點點小錯誤
public class Replace {
public static void main(String[] args) {
String str = "1abcdeeeeffaaa";

char[] ch = str.toCharArray();

for (int i = 0, len = ch.length; i < len; i++) {
if (ch[i] == 'a') {
ch[i] = 'f';
}
if (ch[i] == 'b') {
ch[1] = 'g';
}
}
String newStr = new String(ch);
System.out.println("str=" + str);
System.out.println("newStr = " + newStr);

}
}

Ⅱ 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

Ⅲ 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"

Ⅳ java怎麼替換字元串某個字元

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」

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


  • }


Ⅵ Java中如何替換^和|這兩個字元。

str.replaceAll("\^","*")//替換「^」
str.replaceAll("\|","*")//替換「|」


「^」在正則表達式中表示匹配字元串的開始位置

「|」 在正則表達式中表示將兩個匹配條件進行邏輯「或」(Or)運算

如果要替換特殊字元,則需要轉義之後才能使用

Ⅶ java中怎麼進行字元串替換

使用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的內容也不發生改變。

字元串在存儲上類似字元數組

它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:

長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

Ⅷ JAVA 如何string替換指定字元

JAVA String替換指定字元有兩個方法:

//返回一個新的字元串,它是通過用newChar替換此字元串中出現的所有oldChar而生成的
publicStringreplace(charoldChar,charnewChar)

//示例
Stringstr="HelloWorld";
System.out.println(str.replace('H','W'));//輸出WelloWorld

//使用給定的replacement字元串替換此字元串匹配給定的正則表達式的每個子字元串。
publicStringreplaceAll(Stringregex,Stringreplacement)

示例:
Stringstr="HelloWorld";
System.out.println(str.replaceAll('l','w'));//輸出HewwoWorwd

Ⅸ java中怎樣替換字元串中的值

我估計樓主是不是困在了String的replace和replaceAll方法上面了。replace並不是只替換第一個匹配的字元串而repalaceAll是匹配所有。它兩其實都是找到所有的匹配項然後替換,不同的地方是:replace是匹配字元,而replaceAll是匹配正則表達式。所以這兩種方法都可以:replace("\\","/")或者repaceAll("\\\\","/")。replaceAll要加四個反斜杠,是因為,首先在java裡面「\」是轉義符,所以你要寫兩個,正則裡面他也是專業符,你又要再加一個,所以最後是四個

熱點內容
長安unit卓越版有哪些配置 發布:2025-01-10 11:25:25 瀏覽:99
python安裝後怎麼打開 發布:2025-01-10 11:08:35 瀏覽:870
phpjava架構 發布:2025-01-10 10:56:06 瀏覽:383
python二維排序 發布:2025-01-10 10:56:00 瀏覽:607
南水北調怎麼配置 發布:2025-01-10 10:55:27 瀏覽:121
廣數980系統參數密碼是多少 發布:2025-01-10 10:55:25 瀏覽:577
androidhtml字體 發布:2025-01-10 10:55:01 瀏覽:787
資料庫連接工廠模式 發布:2025-01-10 10:51:00 瀏覽:487
mac文件夾路徑設置 發布:2025-01-10 10:48:12 瀏覽:803
shell腳本自動密碼 發布:2025-01-10 10:46:29 瀏覽:766