Получить конкретные слова из строки в Java - PullRequest
0 голосов
/ 16 декабря 2018

Если у меня есть следующий URL:

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

Как я могу получить имя плагина (просто называемое wordpressplugin в URL) и версию, чтобы вывод получился - wordpressplugin ver 1.0

Ответы [ 5 ]

0 голосов
/ 16 декабря 2018

Вы можете сделать это так, используя поддержку Regex в 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
0 голосов
/ 16 декабря 2018

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.
    }

Надеюсь, это поможет .. веселого кодирования!

0 голосов
/ 16 декабря 2018

Поскольку вы утверждаете, что являетесь новичком в 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);
    }
}
0 голосов
/ 16 декабря 2018

Я отправляю свой комментарий в качестве ответа

String s = "http://www.example.com/wordpress/plugins/wordpressplugin/123/ver=1.0";
String[] ary = s.split("/"); 
System.out.println(ary[5] + " " + ary[7]); 

Самый простой способ, в соответствии с вашим вопросом, вы должны использовать регулярные выражения для более динамичного поиска.

0 голосов
/ 16 декабря 2018

Вы должны взглянуть на Регулярные выражения (в руководствах по Oracle) , которые являются основным инструментом на любом языке программирования для получения / сопоставления подстрок из большей строки (которая следует за некоторыми илименее фиксированный формат).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...