2013-04-29 124 views
8

我想知道在字符串中的逗號之前刪除字符的最佳方法,以及刪除逗號本身,只留下字符串中的逗號後面的字符,如果該字符串表示爲「城市,國家」。刪除字符串中的逗號前的字符

在此先感謝

+1

您是否嘗試過什麼速度? – prasanth 2013-04-29 18:16:03

+0

正則表達式是你的朋友 – ryrich 2013-04-29 18:19:09

回答

24

所以,你要

城市,國家

成爲

國家

一個簡單的方法來做到這一點是這樣的:

public static void main(String[] args) { 
    System.out.println("city,country".replaceAll(".*,", "")); 
} 

這是 「貪婪」,雖然,這意味着它會改變

城市,州,國家

國家

在你的情況,你可能希望它成爲

州,國家

我無法從你的問題告訴我們。

+0

什麼是'。*,'?謝謝! – 2016-02-11 00:25:03

+2

如果一方不願意>城市,州,國家成爲 >州,國家 將replaceAll替換爲replaceFirst System.out.println(「city,state,country」.replaceFirst(「 「 但是,這個問題還不清楚 – CodeMonkey 2016-06-14 17:21:59

+0

@RuchirBaronia這段時間是任何字符,星號表示重複(意味着任意數量的句點/字符),逗號是一個常規的逗號通配符*只在它之前。 – 2016-12-01 17:03:42

0

你可以實現一種子字符串,在逗號前面找到所有字符索引,然後你需要做的就是刪除它們。

2

如果你感興趣的是提取數據,同時保持原始字符串不變,你應該使用split(String regex)函數。

String foo = new String("city,country"); 
String[] data = foo.split(","); 

數據數組現在將包含字符串「city」和「country」。 更多信息可在這裏:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split%28java.lang.String%29

+2

字符串是不可變的,所以原始字符串將始終保持不變。 – 2013-04-29 18:28:53

+0

確實如此,不知道我在想什麼...... – Orion 2013-04-29 18:30:50

1

這可以用的substringindexOf的組合來完成,使用indexOf來確定(第一)逗號的位置,並且substring相對於所述串的一部分提取到該位置。

String s = "city,country"; 
String s2 = s.substring(s.indexOf(",") + 1); 
3

檢查這個

String s="city,country"; 
System.out.println(s.substring(s.lastIndexOf(',')+1)); 

我發現它比.replaceAll(".*,", "")

+0

什麼是'。*,'? THanks – 2016-02-11 00:26:00

+0

它是正則表達式「。*」表示任意數量的字符,','逗號用作分隔符。 – 2016-02-11 06:27:15

相關問題