java string replace 重载_关于Java:如何使用replace(char,char)替换字符b的所有实例为空...
如何使用replace(char,char)將字符" b"的所有實例全部替換為空。
例如:
Hambbburger to Hamurger
編輯:有一個約束,我只能使用1.4.2,這意味著沒有重載版本的replace!
你不能因為什么都不是字符! 為什么不能使用replace(String,String)?
Java的可能重復項:從字符串中刪除所有出現的char
嗨,Dogbane,適用于Java 5及更高版本,其1.4.2版將沒有重載版本。
還有一個replaceAll函數使用字符串,但是請注意,它會將它們評估為正則表達式,但是替換單個字符就可以了。
這是一個例子:
String meal ="Hambbburger";
String replaced = meal.replaceAll("b","");
請注意,replaced變量是必需的,因為replaceAll不會更改字符串的位置,而是創(chuàng)建一個替換的字符串(String在Java中是不可變的)。
如果要替換的字符在正則表達式中具有不同的含義(例如. char將匹配任何char,而不是點),則需要quote第一個參數,如下所示:
String meal ="Ham.bur.ger";
String replaced = meal.replaceAll(Pattern.quote("."),"");
它對于b可以正常工作,但是對于.則不行...
@Sean,我第一次錯過了函數名稱,然后對其進行了編輯:)
你為什么改變答案? String.replace()更好!
關于String#replace(@MByD)的答案已經很不錯了,因為replace重載是java6或更高版本,所以請不要理會
(@Pablo Fernandex)是否有嚴格的方法僅使用replace(char,char)來實現這一目標?
@Pablo沒有看到要求。 Java 1.4.x:令人討厭。我去找另一份工作:-)
@沒有沒有
@Sean,不用擔心,最后一句話不是原始問題的一部分:)
@Pablo對此表示感謝。
@Sean抱歉,我這么晚才傳達。
字符串是不可變的,因此請確保將結果分配給字符串。
String str ="Hambbburger";
str = str.replace("b","");
如果使用Java 6,則不需要replaceAll。請參見此處:replace
我知道有一個replace重載!
試試這個代碼。
public class main {
public static void main(String args[]){
String g="Hambbburger.i want to eat Hambbburger.";
System.out.print(g);
g=g.replaceAll("b","");
System.out.print("---------After Replacement-----
");
System.out.print(g);
}
}
輸出
Hambbburger.i想吃漢堡包。 ---------更換后-----
Hamurger.i想吃Hamurger。
String text ="Hambbburger";
text = text.replace('b', '\0');
'\0'代表ASCII碼中的NUL。
@Tom打印Hamurger。
然后,您的控制臺會以與我的不同的方式打印它,因為我的控制臺顯式顯示了\0字符(不能在此處顯示它,因為SO刪除了它們)。因此,此解決方案可能取決于將在其上運行的系統(tǒng)。奇怪。
應該刪除答案,因為它是錯誤的\000除了NUL字符外什么都不代表。更換前后檢查text的長度!它沒有改變。
@GuidoFlohr編輯答案。的確,長度沒有變化,并且那些NUL仍然存在。但這確實滿足了OP的要求。
@Andrew OP要求什么都不要替換,但NUL字節(jié)不是什么,而是有時看起來什么都不是(并且比NUL還要有很多不可打印的字符,例如" u200b",也稱為零寬度空間)。在代碼中添加" System.out.println(text)",將輸出重定向到文件,然后在vi / vim中打開它。您將讀到" Ham ^ A ^ A ^ Aurger",因為NUL字節(jié)是CTRL-A。原始海報清楚地表示"刪除bs",而您的代碼則不這樣做。抱歉,如果這聽起來很粗魯,但您的回答對初學者來說很混亂,而且實際上沒有幫助。
"……有時候看起來……"->"…………有時候看起來……"
String str="aabbcc";
int n=str.length();
char ch[]=str.toCharArray();
for(int i=0;i
{
for(int j=i+1;j
{
if(ch[i]==ch[j])
{
ch[j]='*';
}
}
}
String temp=new String(ch);
for(int i=0;i
{
if(temp.charAt(i)!='*')
System.out.print(temp.charAt(i));
}
您也可以更改相同字符的位置。此代碼也將起作用。
String中的replaceAll無法正常工作。建議始終使用replace()
例如:-
String s="abcdefabcdef";
s=s.replace("a","");
嗨,歡迎來到。 replaceAll很好,不確定從哪里得到的-您是否有特定的越野車箱?另外,您也不會回答這個問題-OP想要刪除一個字符,而沒有辦法通過replace(char,char)來實現。
總結
以上是生活随笔為你收集整理的java string replace 重载_关于Java:如何使用replace(char,char)替换字符b的所有实例为空...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用几行代码恶搞别人的电脑
- 下一篇: kubernetes 集群部署