java中字元替換
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)
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
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
String text = "there are many hotels " +"by amap.the adrr: http://xxxx pattern.";String pattern = ".*http://.*";
boolean matches = Pattern.matches(pattern, text);//true則存在123
/**
* 結果: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
/**
*結果: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
Pattern pattern = Pattern.compile("[0-9]*");//判斷是否都是數字
Matcher isNum = pattern.matcher("1123是數字");
if(isNum.matches()) {
System.out.println("全部是數字");
} else {
System.out.println("有漢字");
}
1、去掉字元串中的空格和換行符
2、去掉指定特殊字元
3、Pattern.matches()檢查字元串中是否存在指定字元
4、Pattern.split()用正則表達式作為分隔符,把文本分割為String類型的數組
5、Matcher 實例的find() + start() + end()尋找字元串中指定字元串出現的次數和起始和結束的索引位置
6、Matcher 匹配指定格式的特殊字元串
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:有興趣可以深入研究一下正則表達式的語法,及規則。