Pedido de ajuda

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("2347378297", 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)
{

}

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

1 curtida

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!

1 curtida

Muito obrigado Dahan_Schuster conseguiu ajudar sim

1 curtida

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