Lógica

5 respostas
edymrex
O que não estou conseguindo fazer e o seguinte:

Por exemplo tenho uma String:

String principal =master of puppets hehehehehhe;

É tenho outra também

String auxiliar=hhe;

O que eu quero fazer é quando o programa achar hhe na String principal

ele me mostre a posição de começo e fim do caracter, neste caso vai ser

26 e 28

eu quero isto para marcar a substring auxiliar na string principal mas estou apanhando muito nisto até consegui fazer se encontrar o subtring de cara

tipo:

String principal =“master”;
String auxiliar=“ter”;

neste caso quebrei a cabeça e consegui, porque é soh achar o ter na String principal  e pronto, mas se tiver String principal =master master;

vai me dar um resultado tipo:

3

12

ter master// aki está o resultado

será que alguém sabe como eu posso fazer sito vou deixar o código do que eu  fiz;
package com.algortimos;

 
import java.util.LinkedList;

public class teste 
{
      public static void main(String args[])
      {
    	  String x="master";
    	  String y="ter";
 
 
    	  int vet[]= new int [x.length()];
    	 
    	  LinkedList<Integer> lista = new LinkedList<Integer>();
    	  int first=0;
    	  int last=0;
    	  
    	  int i,j;
    	  
    	  for(i=0;i<x.length();i++)
    	  {
    		  for(j=0;j<y.length();j++)
    		  {
    			  if(y.charAt(j)==x.charAt(i))
    			  {
    				   vet[i]=y.charAt(j);
    			  }
    		  }
    	  }
    	  
    	  for(i=0;i<vet.length;i++)
    	  {
    		  if(vet[i]!=0)
    		  {
    			   
    			  lista.add(i);
    			   
    		  }
    	  }
    	 
    	  
    	  try
    	  {
    		
    		  System.out.println(first= lista.getFirst());
    		  System.out.println(last= lista.getLast());
    		  
    		  if(first==last)
    		  {
    			  System.out.println(last=lista.getLast()+1);
    			  System.out.println(first=lista.getLast());
    		  }
    	  }
    	  catch(Exception e){}
    	  
    	  
    	  System.out.println(x.substring(first,last+1));
    	  
 
      }
}

5 Respostas

Zeed01

Acho que não entendi muito bem…

Quando a segunda string aparecer mais de uma vez, como em:

String principal= “master master”;
String auxiliar = “ter”;

Que resultado você quer obter ?

No caso de:

String principal = master;

String auxiliar = ter;

Não daria pra localizar a string, obtendo a posição_inicial e fazer posicao_final = posicao_inicial + tamanho da string auxiliar ?

[]s

acopiara
public class Teste {

	public static void main(String[] str) {
		// System.out.println(enum);
		String principal = "masterccc";
		String auxiliar = "ter";
		//se não existir a palavra auxiliar dentro da principal, o indexOf retorna -1
		// 
		if(principal.indexOf(auxiliar)>-1){
			//inicio
		System.out.println(principal.indexOf(auxiliar));
		// fim
		System.out.println(principal.indexOf(auxiliar) + auxiliar.length() - 1);
		}
	}
}
edymrex
Cara vou se mais objetivo

tenho as Strings:

String principal=master master;

String auxiliar=ter;

O que eu quero e simplismente pegar a posição de auxiliar em principal que neste caso vai dar:
3
5
dai eu somo +1 no 5 para pegar a subtring certinho, faz o teste ai para vc ver

String x=“master master”;
System.out.println(x.substring(3,6));

vai dar exatamente ter, e exatamente isto que eu quero mas com as Strings

String principal="master of puppets hehehehehhe ";

String auxiliar=hhe;

Minha idéia que não consigo colocar no código é :

cara neste caso ele tem k percorrer todo a string principal e

enquanto não achar exatamente a substring hhe  ele não para de percorrer e ma ou menos isto
edymrex

P/acopiara
Corretissimo…!!!
muito obrigado…!

Zeed01

Estou enganado ou foi a mesma sugestão que eu dei ?

Achei que sua dúvida fosse com a lógica e não com o código.

[]s

Criado 12 de junho de 2007
Ultima resposta 13 de jun. de 2007
Respostas 5
Participantes 3