String - localizar/pesquisar uma parte da string
gostaria de encontrar uma forma de ler uma string e verificar de acordo com um critério estabelicido se existe ou nao a parte da string procurada.
ex.
CNLAB02PC27
de posse dessa string gostaria de saber se ela tem LAB02 ou nao?
quem poderar me ajudar?
George Andre
Curtidas 0
Respostas
Celso Martins
09/08/2009
[quote="cariri"]gostaria de encontrar uma forma de ler uma string e verificar de acordo com um critério estabelicido se existe ou nao a parte da string procurada.
ex.
CNLAB02PC27
de posse dessa string gostaria de saber se ela tem LAB02 ou nao?
quem poderar me ajudar?
Para buscas simples, pode usar [b]String.contains[/b].
Para buscas mais complexas, tente [url=http://java.sun.com/docs/books/tutorial/essential/regex/]expressões regulares[/url]
abraços
GOSTEI 0
George Andre
09/08/2009
obrigado celso, jah jah consigo resolver esse problema atraves das linhas abaixo. mas surgiram outras duvidas...
String str1 = "cnlab02pc27";
boolean equals1 = str1.contains("lab02");
out.println(equals1);
meu problema é o seguinte: eu tenho que descobrir de qual laboratorio é "tal" maquina, para isso eu so tenho em maos o nome da maquina. cnlab01pcXX ou cnlab02pcXX ou cnlab03pcXX. só preciso saber se faz parte do laboratoria 1, 2 ou 3.
ainda estou engatinhando no mundo da lógica, me ajudem!
GOSTEI 0
William Siqueira
09/08/2009
Tem o indexOf! você pode encontrar o índice da String procurada e então "pular" a String para a posição que quer:
/*OBS: Não testei o código abaixo, foi feito aqui mesmo... Mas é algo assim.*/
Edit: Testado, funcionou.
Existem outras soluções que você pode usar...
String str1 = "cnlab02pc27"; String procurada = "lab02"; int pos = str1.indexOf(procurada) + procurada.length(); String pc = str1.substring(pos);
GOSTEI 0
George Andre
09/08/2009
com a ajuda de vc´s consegui resolver meu problema. mas fiz alguns ajustes necessarios.
alguem se habilita em melhorar?
basicamente quero que ele leia o hostname da uma maquina e me retorne se é do lab1, lab2 ou lab3 para entao abrir pagina especificas para cada laboratorio. acho q da forma que fiz dara certo.
InetAddress addr = InetAddress.getLocalHost();
String hostname = addr.getHostName();
for(int i=1; i <= 3; i++ ){
Boolean equals1 = hostname.contains("lab0"+i);
if(equals1==true){
getServletContext().getRequestDispatcher
("/index"+i+".jsp").forward(request, response);
break;
}
}GOSTEI 0
Flávio Mendes
09/08/2009
Acho que essa declaração do boolean não é necessária, você pode apenas colocar por exemplo:
Pois declarando esse objeto Boolean, você estará colocando algo na heap que só vai ser utilizado essa vez.
if(string.contais("teste")){
//faz algo
}
GOSTEI 0