java特殊字元串
① java字元串中的「\u」是什麼意思
u是轉義字元,表示後面跟一個十六進制數,通過這個十六進制數來指定一個字元,face這樣看著好容易誤導,其實就是一個十六進制數而已轉換成十進制就是64206。
0xface是在表示整形的時候這樣使用,比如int a = 0xface,而這兒,是表示一個字元,因為在java以及其他很多語言中,都是用反斜杠來表示轉義字元。用是表示後面是轉移字元,用u是unicode的縮寫,表示後面是一個unicode字元。其實只是寫法問題。
(1)java特殊字元串擴展閱讀
字元串之所以特殊,是因為java會在內容中為String類型的對像開辟一個空間,叫串池,字元串對象的創建之後會被放入到串池中。串池有一個特點,就是對於相同對象,池中只存儲一份。
String a="abc";和String b="abc" 對於這樣的類型的聲明方式(不是new出來的)串池把他們看做一個對象,所以池中只存儲一分,只是有a 和b 兩個引用罷了!對於String只要用new關鍵字new出來的string,都是單獨的一個對象。
② java中如何截取特殊字元串
給你推薦java 字元串截取的三種方法:
split()+正則表達式來進行截取。
將正則傳入split()。返回的是一個字元串數組類型。不過通過這種方式截取會有很大的性能損耗,因為分析正則非常耗時。
2.通過subString()方法來進行字元串截取。
subString通過不同的參數來提供不同的截取方式
只傳一個參數
例如:
String sb = "bbbdsajjds";
sb.substring(2);
將字元串從索引號為2開始截取,一直到字元串末尾。(索引值從0開始);
傳入2個索引值
String sb = "bbbdsajjds";
sb.substring(2, 4);
從索引號2開始到索引好4結束(並且不包含索引4截取在內,也就是說實際截取的是2和3號字元);
運行結果如下:
bdsajjds
bd
3.通過StringUtils提供的方法
StringUtils.substringBefore(「dskeabcee」, 「e」);
/結果是:dsk/
這里是以第一個」e」,為標准。
StringUtils.substringBeforeLast(「dskeabcee」, 「e」)
結果為:dskeabce
這里以最後一個「e」為准。
③ 關於java中如何獲得特殊字元
//截取#之前的字元串
Stringstr="sdfs#d";
str.substring(0,str.indexOf("#"));
//輸出的結果為:sdfs
//indexOf返回的索引也是從0開始的,所以indexOf("#")=4。
//java中的substring的第一個參數的索引是從0開始,而第二個參數是從1開始
④ java中的字元串中"\\"表示什麼意思
"\\"表示字元"\"。
java中"\"是特殊字元,表示轉義的意思,如果要表示實際的字元"\",則需要加2個"\",也就是"\\"
⑤ java中replaceAll,如何將特殊字元顯示出來
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如何顯示特殊字元的
java中replaceAll將特殊字元顯示出來方法://reg表示要替換的字元串//replacement表示替換字元串public String replaceAll(String regex,String replacement) //具體例子public class Test { public static void main(String[] args) { String str="Hello World"; String reg="o"; System.out.println(str.replaceAll(reg, "ww")); } }
⑦ java 如何在轉義包含特殊字元的字元串
通過\的方式轉義.
java中有特殊含義的字元(如:換行符,回車符,單引號,雙引號),如果要用它,必須在前面加一個前綴「\」如換行("\n")、回車("\r")、雙引號("\"")、反斜杠("\\")等
⑧ JAVA正則表達式獲取特定的字元串
^ 和 $ 他們是分別用來匹配字元串的開始和結束,以下分別舉例說明:
"^The": 開頭一定要有"The"字元串;
"of despair$": 結尾一定要有"of despair" 的字元串;
那麼,
"^abc$": 就是要求以abc開頭和以abc結尾的字元串,實際上是只有abc匹配。
"notice": 匹配包含notice的字元串。
你可以看見如果你沒有用我們提到的兩個字元(最後一個例子),就是說 模式(正則表達式) 可以出現在被檢驗字元串的任何地方,你沒有把他鎖定到兩邊。
接著,說說 '*', '+',和 '?',
他們用來表示一個字元可以出現的次數或者順序. 他們分別表示:
"zero or more"相當於{0,},
"one or more"相當於{1,},
"zero or one."相當於{0,1}, 這里是一些例子:
"ab*": 和ab{0,}同義,匹配以a開頭,後面可以接0個或者N個b組成的字元串("a", "ab", "abbb", 等);
"ab+": 和ab{1,}同義,同上條一樣,但最少要有一個b存在 ("ab", "abbb", 等.);
"ab?":和ab{0,1}同義,可以沒有或者只有一個b;
"a?b+$": 匹配以一個或者0個a再加上一個以上的b結尾的字元串.
要點, '*', '+',和 '?'只管它前面那個字元.
你也可以在大括弧裡面限制字元出現的個數,比如
"ab{2}": 要求a後面一定要跟兩個b(一個也不能少)("abb");
"ab{2,}": 要求a後面一定要有兩個或者兩個以上b(如"abb", "abbbb", 等.);
"ab{3,5}": 要求a後面可以有2-5個b("abbb", "abbbb", or "abbbbb").
現在我們把一定幾個字元放到小括弧里,比如:
"a(bc)*": 匹配 a 後面跟0個或者一個"bc";
"a(bc){1,5}": 一個到5個 "bc."
還有一個字元 '│', 相當於OR 操作:
"hi│hello": 匹配含有"hi" 或者 "hello" 的 字元串;
"(b│cd)ef": 匹配含有 "bef" 或者 "cdef"的字元串;
"(a│b)*c": 匹配含有這樣多個(包括0個)a或b,後面跟一個c的字元串;
一個點('.')可以代表所有的單一字元,不包括"\n"
如果,要匹配包括"\n"在內的所有單個字元,怎麼辦?
對了,用'[\n.]'這種模式.
"a.[0-9]": 一個a加一個字元再加一個0到9的數字
"^.{3}$": 三個任意字元結尾 .
中括弧括住的內容只匹配一個單一的字元
"[ab]": 匹配單個的 a 或者 b ( 和 "a│b" 一樣);
"[a-d]": 匹配'a' 到'd'的單個字元 (和"a│b│c│d" 還有 "[abcd]"效果一樣); 一般我們都用[a-zA-Z]來指定字元為一個大小寫英文
"^[a-zA-Z]": 匹配以大小寫字母開頭的字元串
"[0-9]%": 匹配含有 形如 x% 的字元串
",[a-zA-Z0-9]$": 匹配以逗號再加一個數字或字母結尾的字元串
你也可以把你不想要得字元列在中括弧里,你只需要在總括弧裡面使用'^' 作為開頭 "%[^a-zA-Z]%" 匹配含有兩個百分號裡面有一個非字母的字元串.
要點:^用在中括弧開頭的時候,就表示排除括弧里的字元。為了PHP能夠解釋,你必須在這些字元面前後加'',並且將一些字元轉義.
⑨ java特殊字元處理
「.」 是特殊字元,正確表示應該是「\.」。
另外還有replace ,replaceAll ,這兩者都是由正則表達式類庫實現的,但是 replace 採用的是字元串原有的意思來替換,而 replaceAll 則是按照正則表達式的字元串來替換,正則表達式中有 15 個元字元,是有特殊意義的,使用時需要轉義,這 15 個字元分別是
( [ { ^ - $ ** } ] ) ? * + .
轉義時可以採用兩種方式:
正則表達式中表述上述字元,需要在前面加上「」,但是「」是 Java 中的特殊字元,在 Java 代碼中用「\」表示正則表達式中的「」。
在需要保留本身意義的前後加上 Q 和 E,把特殊字元放在這裡面就成普通字元了。
若想表示一個「」,在 Java 代碼中需要使用「\\」。
⑩ 用Java怎樣清除字元串的特殊字元,現象問題如下:
Java清除字元串中的特殊字元,可以使用String類的replaceAll方法。
publicStringreplaceAll(Stringregex,
Stringreplacement)
使用給定的 replacement 替換此字元串所有匹配給定的正則表達式的子字元串。
調用此方法的str.replaceAll(regex,repl)形式與以下表達式產生的結果完全相同:
Pattern.compile(regex).matcher(str).replaceAll(repl)
示範:
packagecom.sd.coding;
publicclassTest01{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Stringstr="abc-bcd";
System.out.println(str.replaceAll("-",""));
}
}
輸出:abcbcd