我有串這樣的字符串s="ram123",d="ram varma656887"
我想串像RAM和SRAM瓦瑪因此如何從混合串 單獨的字符串我使用正則表達式嘗試,但它不工作如何更換所有數字在java字符串處理
PersonName.setText(cursor.getString(cursor.getColumnIndex(cursor
.getColumnName(1))).replaceAll("[^0-9]+"));
我有串這樣的字符串s="ram123",d="ram varma656887"
我想串像RAM和SRAM瓦瑪因此如何從混合串 單獨的字符串我使用正則表達式嘗試,但它不工作如何更換所有數字在java字符串處理
PersonName.setText(cursor.getString(cursor.getColumnIndex(cursor
.getColumnName(1))).replaceAll("[^0-9]+"));
選擇所有數字的正確RegEx僅爲[0-9]
,您可以跳過+
,因爲您使用的是replaceAll
。
但是,您的使用replaceAll
是錯誤的,它的定義如下:replaceAll(String regex, String replacement)
。在你的例子中正確的代碼是:replaceAll("[0-9]", "")
。
要刪除這些數字,下面的代碼將執行此操作。
stringname.replaceAll("[0-9]","");
我想你錯過了全部替換的第二個參數。您需要將空字符串作爲參數2,而不是實際將其留空。
嘗試
replaceAll(<your regexp>,"")
您可以使用以下正則表達式:\d
表示數字。在您使用正則表達式,你有一個^
將檢查除字符集之外的任何字符0-9
String s="ram123";
System.out.println(s);
/* You don't need the + because you are using the replaceAll method */
s = s.replaceAll("\\d", ""); // or you can also use [0-9]
System.out.println(s);
請做如下
String name = "ram varma656887";
name = name.replaceAll("[0-9]","");
System.out.println(name);//ram varma
另外,也可作爲
String name = "ram varma656887";
name = name.replaceAll("\\d","");
System.out.println(name);//ram varma
做
還有類似的東西會爲你工作
String given = "ram varma656887";
String[] arr = given.split("\\d");
String data = new String();
for(String x : arr){
data = data+x;
}
System.out.println(data);//ram varma
您可以使用Java - String replaceAll()方法。 此方法用給定的替換替換此字符串的每個與給定正則表達式匹配的子字符串。
下面是該方法的語法:
public String replaceAll(String regex, String replacement)
以下爲參數的細節:
正則表達式 - 正則表達式到該字符串是要被匹配。
替換 - 將替換找到的表達式的字符串。
返回值:
此方法返回結果字符串。
您的問題用這個
String s = "ram123", d = "ram varma656887";
System.out.println("s" + s.replaceAll("[0-9]", ""));
System.out.println("d" + d.replaceAll("[0-9]", ""));