Pedido de ajuda

4 respostas Resolvido
N
Boas, tem alguém para ajudar?

Quero que imprima a string de acordo com os numero de array

exemplo: 234 por causa de 3

"73" os dois a seguir

7829 os quatro a seguir

e 7 o 1 a seguir

public static void main(String[] args)

{
int[] s = splitText("[telefone removido]", new int[]{3,2,4,1});
    for(int i = 0; i < s.length; i++)
    {
        System.out.println(s[i]);
    }

}

public static int[] splitText(String text, int[] parts)
{

}

4 Respostas

rodriguesabner

Os números serão sempre os mesmos? Pode usar o regex

Dahan_Schuster
Solucao aceita

Fiz dessa forma:

public static String[] splitText(String text, int[] parts)
	{
		String[] output = new String[parts.length];
		
		int lastPartEndingIndex = 0;
		
		try {
			for (int i = 0; i < output.length; i++) {
				output[i] = text.substring(lastPartEndingIndex, lastPartEndingIndex+parts[i]);
				
				lastPartEndingIndex = lastPartEndingIndex+parts[i];
			}
		} catch (IndexOutOfBoundsException e) {
			return output;
		}
		
		return output;
	}

Transformei seu vetor de inteiros em um vetor String, para poder separar com substring.
A variável lastPartEndingIndex guarda o índice em que terminou a última parte.

Coloquei o try { } catch { } para não encerrar o programa se a soma das partes for maior que o tamanho do texto.

Espero ter ajudado!

N

Muito obrigado Dahan_Schuster conseguiu ajudar sim

Dahan_Schuster

Ótimo, @NCC_Informatico ! Marca como resolvido pra indicar aos outros leitores.
Boa tarde!

Criado 20 de dezembro de 2018
Ultima resposta 21 de dez. de 2018
Respostas 4
Participantes 3