如何删除字符串中的最后2个单词?

时间:2011-02-22 15:30:45

标签: java

我有一个包含地址的字符串,我想删除最后两个字的邮政编码。

例如21 Lane Street London W10 2GH

我想删除'W10 2GH'

2 个答案:

答案 0 :(得分:9)

用空字符串替换模式\s*\w+\s+\w+$

String s = "21 Lane Street London W10 2GH";
System.out.println(s.replaceFirst("\\s*\\w+\\s+\\w+$", ""));

产生

21 Lane Street London

一个简短的解释:

\s*  # zero or more white space chars
\w+  # one or more alpha-nums (or underscore), specifically: [a-zA-Z0-9_]
\s+  # one or more white space chars
\w+  # one or more alpha-nums (or underscore)
$    # the end of the input

答案 1 :(得分:1)

很多方法。在这种情况下最简单的方法就是使用 rindex() lastIndexOf()来查找空白。

使用正则表达式搜索实际的邮政编码可能会更安全一些。