para pegar esse endereço ip e essa porta, e jogar cada um deles em uma variável diferente. Dei uma olhada por ai e vi que tem a função Split, só que não sei bem como usá-la. Outra coisa que complicou é que essa string não é um valor fixo, o ip e a port também podem mudar.
onde nesse exemplo textos[0] é o ip e textos[1] é a port.
M
marcel0
Então ai até resolveria o problema se fosse uma string fixa, mas como eu disse, essa string pode mudar de acordo com o ambiente, então se no meio da string acrescentar mais qualquer coisa que tenha outra “/” no meio já iria quebrar o código e o resultado não ia ser o correto.
D
Dragoon
Eu entendi que somente a porta e o ip mudariam, você precisa então colocar mais exemplos, tem como?
O exemplo que eu dei só resolva se a String for nesse esquema.
S
staroski
Poderia criar um regex com um grupo pro IP e e um grupo pra porta e aí usar as classes Pattern e `Matcher para extrair os valores do IP e porta.
Como você viu tem muitas formas de fazer isso.
Mas o importante é você saber o escopo e fazer um parser.
exemplo
“service:jmx:rmi:///jndi/rmi://127.0.0.1:7001/jmxrmi”
[service|work]<:><///></> …
Bom, apenas para entender, a linha acima tem [service|work] , nesse caso o parser espera pela palavra service ou a palavra work , se for diferente podera’ apresentar um erro.
Entendido isso, já pode começar a brincar.
importjava.util.StringTokenizer;publicclassPartString{publicstaticvoidmain(String[]args){Strings="service:jmx:rmi:///jndi/rmi://127.0.0.1:7001/jmxrmi";// String s = "service:jmx:rmi:///jndi/rmi://www.salvejava.com.br:7001/jmxrmi";System.out.println("Por substring");inti=s.indexOf("jndi/rmi://");Stringp=s.substring(i+11,s.length());Stringip=p.substring(0,p.indexOf(":"));Stringport=p.substring(p.indexOf(":")+1,p.indexOf("/"));System.out.println("ip="+ip+" port="+port);System.out.println("\nPor StringTokenizer");StringTokenizerst=newStringTokenizer(s,":/");while(st.hasMoreTokens()){Stringss=st.nextToken();if(ss.equals("jndi")){Stringrmi=st.nextToken();if(rmi.equals("rmi")){Stringipp=st.nextToken();Stringporta=st.nextToken();System.out.println("ip="+ipp);System.out.println("porta="+porta);break;}}}}}