2013-04-29 112 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