Cortar Strings [Resolvido]

Seguinte pessoas, preciso fazer um método que receba uma String var e um Integer limite.
O método vai retornar um lista de Strings com o máximo de tamanho sendo o limite.
E se o limite der no meio de uma palavra vai retornar no ultimo ponto que cortou até ultimo espaço

Agradeço a ajuda porque tô apahando aqui ^^

coloca um exemplo de como a string tem que ficar…

Até agora consegui o problema é quando o limite é menor do que a palavra após o ultimo corte…a seguir o código

import java.util.ArrayList;
import java.util.List;

public class Algoritmo2 {

	public List<String> retornar(String msg, Integer lim) {
		List<String> lista = new ArrayList<String>();
		Integer ultimoEspaco = 0;
		Integer ultimaQuebra = 0;	
		
		for(int i = 0; true; i++){			
			
			if(i >= msg.length()){
				System.out.println(msg.substring(ultimaQuebra));
				break;
			}
			
			if(msg.charAt(i) == ' '){
				ultimoEspaco = i;
			}
			if(i == lim){
				System.out.println(msg.substring(ultimaQuebra, ultimoEspaco));
				msg = msg.substring(ultimoEspaco);
				i = 0;
			}			
		}		
		return lista;
	}
}
tá feio mas é só pra quebrar o galho por enquanto...no ligar dos lista.add tem uns System.out...

Exemplo: String = “12345 123” -Limite = 5
Tem que imprimir:
12345
123

meu problema é se eu tenho String = “12345” e Limite = 2

Tem que imprimir:
???

Não entendi o problema… Eu faria com substring usando o integer para corta-la… Acho que nem precisaria de for.

Cara faz assim:

String t = "asdas dasdasd asd as dasd";
String[] separado = t.split(" ");

dai você faz um loop em separado, conta os caracteres la dentro do loop e vai incrementando… enquanto isso vai montando a sua lista de strings que será o resultado final…

abraço.

meu problema é se eu tenho String = “12345” e Limite = 2

ela vai retornar

12
34
5

isso ?

[quote=alexvingg]meu problema é se eu tenho String = “12345” e Limite = 2

ela vai retornar

12
34
5

isso ?[/quote]

não…não posso cortar palavras no meio…enfim…ficou feio…ficou medonho…eu vou para o inferno…mas quebrou o galho…ficou assim:

import java.util.ArrayList;
import java.util.List;

public class Algoritmo {

	public List<String> retornar(String msg, Integer lim) {
		List<String> lista = new ArrayList<String>();
		int ultimoEspaco = 0;
		int ultimaQuebra = 0;

		for (int i = 0; true; i++) {

			if (!msg.contains(" ")) {
				lista.add(msg.substring(ultimaQuebra));
				break;
			}

			if (i >= msg.length()) {
				lista.add(msg.substring(ultimaQuebra));
				break;
			}

			if (msg.charAt(i) == ' ') {
				ultimoEspaco = i;
			}
			rot: if (i == lim) {
				if (ultimoEspaco == ultimaQuebra) {
					for (int n = 0; true; n++) {
						if (msg.charAt(n) == ' ') {
							lista.add(msg.substring(ultimaQuebra, n));
							msg = msg.substring(n);
							i = 0;
							break rot;
						}
					}
				}
				lista.add(msg.substring(ultimaQuebra, ultimoEspaco));
				msg = msg.substring(ultimoEspaco);
				i = 0;
			}
		}
		return lista;
	}
}

Vou arrumar amanhã tentar fazer algo com o que o LucasEduardo falou…
Obrigado aí quem ajudou.