从Java中的字符串中获取特定单词

从Java中的字符串中获取特定单词,java,regex,string,substring,Java,Regex,String,Substring,如果我有以下URL: http://www.example.com/wordpress/plugins/wordpressplugin/123/ver=1.0 如何获取插件的名称(在URL中简称为wordpressplugin)和版本,以便输出为-wordpressplugin 1.0版?您应该研究一下,在任何编程语言中,哪种工具都是从较大的字符串(遵循某种或多或少固定的格式)中获取/匹配子字符串的通用工具.因为您自称是JAVA新手,这里有一个非常简单的答案,应该适合您的技能 String u

如果我有以下URL:

http://www.example.com/wordpress/plugins/wordpressplugin/123/ver=1.0

如何获取插件的名称(在URL中简称为
wordpressplugin
)和版本,以便输出为-wordpressplugin 1.0版?

您应该研究一下,在任何编程语言中,哪种工具都是从较大的字符串(遵循某种或多或少固定的格式)中获取/匹配子字符串的通用工具.

因为您自称是JAVA新手,这里有一个非常简单的答案,应该适合您的技能

String url = "http://www.example.com/wordpress/plugins/wordpressplugin/123/ver=1.0";
String search = "plugins/";
int index = url.indexOf(search);
String pluginName, version;

if (index > -1)
{
    index += search.length;
    pluginName = url.substring(index, url.indexOf("/",index + 1));

    search = "ver=";
    index = url.indexOf(search);

    if (index > -1)
    {
       version = url.substring(index + search.length);

       System.out.prinln(pluginName + " " + version);
    }
}

我把我的评论作为回答

String s = "http://www.example.com/wordpress/plugins/wordpressplugin/123/ver=1.0";
String[] ary = s.split("/"); 
System.out.println(ary[5] + " " + ary[7]); 
最简单的方法是根据你的问题, 您必须使用正则表达式进行更动态的搜索

PS:如果且仅当您的url格式始终保持不变时,这将起作用

解决此问题的最快方法是利用字符串的拆分方法。仔细研究下面的方法,这是最基本的

    public String getVersionNumber(String url){

        String[] arr0 = url.split("//");
        //The code above returns an array of two strings: "http:" and "www.example.com/wordpress/plugins/wordpressplugin/123/ver=1.0"

        String[] arr1 = arr0[1].split("/");
        //The code above returns an array of six strings: "www.example.com", "wordpress", "plugins", "wordpressplugin", "123" and "ver=1.0".

        return String.format("%s %s", arr1[3], arr1[5]);
        //OUTPUT: wordpressplugin ver=1.0
        //I simply returned what I needed.
    }

我希望这有帮助。。快乐的编码

您可以这样做,使用Java中的正则表达式支持

String url = "http://www.example.com/wordpress/plugins/wordpressplugin/123/ver=1.0";
Pattern pattern = Pattern.compile("(.*plugins/)(.*)(/\\d{3}/)(ver.*)");
Matcher matcher = pattern.matcher(url);
if (matcher.matches()) {
    System.out.println("Plugin: " + matcher.group(2));
    System.out.println("Version: " + matcher.group(4));
}
请注意捕获组的使用。这是输出

Plugin: wordpressplugin
Version: ver=1.0

使用split函数从何处获取此“字符串”-是否使用spring boot或任何其他mvc框架?-你的动机是什么,为什么要这样做。有多种方法可以做到这一点。您可以使用regex,如果您使用mvc框架,很可能有一些工具可以帮助您。但是最后,发布你的动机总是好的,因为基于你的问题,不是每个解决方案都适合,不知道你的动机url总是有相同的结构吗?插件名称是否总是紧跟其后?可能与Emre Savcı重复-我很确定是的。这个问题是用java标记的,请更正为@Dixit,我将其改为java(而不是JS)。如果url结构是固定的,请使用他的解决方案(对于此用例,更好更快的解决方案)。我的方法更长,但也更灵活(如果需要)。我还没有测试/验证您的答案,但我有点怀疑这是否会引发异常
ary[1]
显然为空。这就是为什么我在自己的回答中对此很谨慎。