0

对于编程工作,我必须将一个 URL 参数分解为三个不同的字段以使其与后端兼容:

网址: sampleurl/PickUpPoint/SelectedView?zip=4431AC&street=Nieuwe+Rijksweg%2C+4B&orderId=6020002&

代码片段

private String street = null;

public void setRequestProperties(TypedProperty reqProperties) throws ECException {
street = reqProperties.getString("street");
AddressBean.setAddress1(street);

结果数据库:

Address1 = Nieuwe Rijksweg 4B

但是,后端的设置方式是将街道地址分为三个不同的字段:

Address1 Streetname
Address2 Number
Address3 addition to the number such as 'a' (if applicable)

不幸的是,我不能再更改后端设置了..

我可以使用什么样的代码/算法来使这个 URL 参数兼容?

4

1 回答 1

0

正则表达式是你的朋友。RegEx 是字符串模式的一种表示法。您可以在字符串中搜索这些模式以获取任何匹配项。

Pattern pattern = Pattern.compile( "^(.+)?(?= [0-9])" ); // regular expression for street
Matcher matcher = pattern.matcher( originalString );

if ( matcher.find() )
    String street = matcher.group();

String number = // regex would be: [0-9]+
String addition = // zero or more characters after a number

我不知道正则表达式的确切表示法,但你可以很容易地用谷歌搜索。

eclipse还有一个很好的插件来测试正则表达式,我认为它叫做QuickREx。

编辑:我添加了一些代码来展示它是如何工作的。

简短的正则表达式解释:

^(.+)?(?= [0-9])   // match everything from beginning until a blank followed by a number
[0-9]+    // match 1 or more digits
于 2014-08-21T07:15:25.147 回答