【问题标题】:Divide one single URL parameter into three values for the back end将一个 URL 参数分成三个值供后端使用
【发布时间】:2014-10-14 17:07:08
【问题描述】:

对于一项编程工作,我必须将一个 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 参数兼容?

【问题讨论】:

    标签: java web-applications websphere url-parameters wcs


    【解决方案1】:

    正则表达式是你的朋友。 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
    

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • 为什么这不是答案? “我可以使用什么样的代码/算法来使这个 URL 参数兼容?” 是个问题,所以在我看来,建议使用正则表达式来拆分字符串是一个完美的有效答案。
    • 是的,从技术上讲,这是一个有效的答案,但你至少可以举个例子。
    • 谢谢,我会调查的。但是,如果有人可以提供一个示例,我们将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 2022-04-28
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多