Problemas substring[RESOLVIDO]

2 respostas
monike

Boa Tarde Galera!
Eu tenho uma String que contém 90 posições usando substring.
Preciso verificar os 3 primeiros códigos se for 456 pegar os 6 primeiros digitos que representam valores.
Depois verifico o codigo 123 vou ter que pegar os outros 6 digitos tudo na ordem e assim sucessivamente.
Fiz algo pra começar onde está pegando os tres primeiros digitos e verifica a que corresponde ,mas estou com dificuldades pra pegar os valores..se alguem puder me ajudar.Agradeço.Obrigada!!!

Tabela código 123 = portas
codigo 456 = Eixos ...

Ex: String teste = 456 123 789 101 123 125 123456 123456 123456 123456 123456 123456 seis campos com tres digitos 6 digitos representam valores
String DadosEquipamentos    = stringAll.substring(962,1052);//90 posições

 	                                        Integer step = new Integer(3);
				        	for (int pos = 0; pos < (DadosEquipamentos.length() / 3); pos++) {

				                int current = pos * step;
				                Integer prefixo = new Integer(DadosEquipamentos.substring(current, current + step));

				                switch (prefixo){
				                case 02: 
				                	painelItensVeiculos.getJTextFieldFrigorifico().setText(vlFrigorifico);
				                    break;
				                case 03: 
				                	painelItensVeiculos.getJTextFieldMunk().setText(vlMunk);
				                    break;
				                case 04: 
				                	painelItensVeiculos.getJTextFieldCapota().setText(vlCapotaFibra);
				                    break;	
				                case 05: 
				                	painelItensVeiculos.getJTextFieldGuincho().setText(vlGuincho); 
				                    break;	
				                case 06: 
				                	painelItensVeiculos.getJTextFieldPlataforma().setText(vlPlataformaElev);  
				                    break;	
				                case 07: 
				                	painelItensVeiculos.getJTextFieldOutrosEquipamentos().setText(outros);
				                    break;	
				                default: 
				                    break;
				                }
				            }

2 Respostas

monike

Muito obrigada wellington.nogueira era exatamente isso!!! :slight_smile:
Que Deus nos ilumine!!!
Bjs

WellingtonRamos

Não entendi ao certo o que vc precisa.
Seria algo como:
456 - 123456
123 - 123456
789 - 123456
101 - 123456
123 - 123456
125 - 123456
(no caso, quebrando a String q vc enviou: 456 123 789 101 123 125 123456 123456 123456 123456 123456 123456 )

Se for isso, a String q precisa precisaria ser separada em duas partes: uma com os códigos e outra com os valores.
A forma que vc implementou não está errada, só que precisará contemplar ambas as divisões:

private static void testeMonike() {
				//....................................v
		String DadosEquipamentos = "456123789101123125987654876543765432654321543210978645";
		int quantidadeCodigos = 6; //Qtdde de codigos a obter
		int inicioValores = 18; //Posicao na String onde inicia-se a obtencao de valores

		Integer step = new Integer(3);
		Integer stepValor = new Integer(6);
		for (int pos = 0, posValores = 0; pos < quantidadeCodigos; pos++, posValores++) {

			int current = pos * step;
			int currentValor = inicioValores + (posValores * stepValor);
			Integer prefixo = new Integer(DadosEquipamentos.substring(current, current + step));
			Integer valor = new Integer(DadosEquipamentos.substring(currentValor, currentValor + stepValor));

			switch (prefixo) {
			case 02:
				doSomeThing();
				break;
			case 03:
				doSomeThing();
				break;
			case 04:
				doSomeThing();
				break;
			case 05:
				doSomeThing();
				break;
			case 06:
				doSomeThing();
				break;
			case 07:
				doSomeThing();
				break;
			default:
				doSomeThing();
				break;
			}
		}  
	}
Criado 4 de maio de 2010
Ultima resposta 4 de mai. de 2010
Respostas 2
Participantes 2