12

我想知道删除字符串中逗号之前的字符以及删除逗号本身的最佳方法是什么,如果字符串表示为“城市,国家”,则只保留字符串中逗号之后的字符'。

提前致谢

4

5 回答 5

34

所以你要

城市,国家

成为

国家

一个简单的方法是:

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

这是“贪婪”的,这意味着它会改变

城市、州、国家

进入

国家

在您的情况下,您可能希望它成为

州,国家

从你的问题我看不出来。

如果您想要“非贪婪”匹配,请使用

System.out.println("city,state,country".replaceAll(".*?,", ""));

这将输出

州,国家

于 2013-04-29T18:16:46.130 回答
4

检查这个

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

我发现它比.replaceAll(".*,", "")

于 2013-04-29T18:26:58.180 回答
3

如果您感兴趣的是在保留原始字符串完整的同时提取数据,您应该使用 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

于 2013-04-29T18:23:13.493 回答
1

这可以通过 和 的组合来完成substringindexOf用于indexOf确定(第一个)逗号的位置,并substring提取相对于该位置的字符串的一部分。

String s = "city,country";
String s2 = s.substring(s.indexOf(",") + 1);
于 2013-04-29T18:26:53.783 回答
0

您可以实现一种子字符串来查找逗号之前的所有字符索引,然后您需要做的就是删除它们。

于 2013-04-29T18:17:21.867 回答