使用字符串标记生成器解析字符串两次

con*_*ner 1 java regex string

我从一些程序获得如下输入字符串

service:jmx:t3://10.20.30.40:9031/jndi/weblogic.management.mbeanservers.runtime
Run Code Online (Sandbox Code Playgroud)

我想在java中解析它并退出

t3
10.20.30.40
9031
Run Code Online (Sandbox Code Playgroud)

我认为我可以使用字符串标记符但我必须标记2次?有没有更好的方法来处理它?

Dee*_*ala 12

使用JMXServiceUrl类.它会为您解析URL.无需与正则表达式或String分裂进行战斗.

String url = "service:jmx:t3://10.20.30.40:9031/jndi/weblogic.management.mbeanservers.runtime";
JMXServiceURL jmxServiceURL = new JMXServiceURL(url);
System.out.println(jmxServiceURL.getHost());
System.out.println(jmxServiceURL.getPort());
System.out.println(jmxServiceURL.getProtocol());
Run Code Online (Sandbox Code Playgroud)

打印

10.20.30.40
9031
t3
Run Code Online (Sandbox Code Playgroud)