String - localizar/pesquisar uma parte da string

Java

09/08/2009

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

George Andre

Curtidas 0

Respostas

Celso Martins

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

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

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.
String str1 = "cnlab02pc27";
String procurada = "lab02";
int pos = str1.indexOf(procurada) + procurada.length();
String pc = str1.substring(pos);
Existem outras soluções que você pode usar...
GOSTEI 0
George Andre

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

Flávio Mendes

09/08/2009

Acho que essa declaração do boolean não é necessária, você pode apenas colocar por exemplo:
if(string.contais("teste")){
//faz algo
}
Pois declarando esse objeto Boolean, você estará colocando algo na heap que só vai ser utilizado essa vez.
GOSTEI 0
POSTAR