Ultimo caracter jTextArea

Eu tenho um jTextArea com várias linhas, como eu faço pra saber se tem o “;” no último caracter de cada linha?

Obrigado

Usa a função split da String pra quebrar o conteúdo do textarea num array de Strings, cada posição correspondente a uma linha.

Daí passa um forzinho nesse array, e verifica se o último caracter é um ponto-e-vírgula.

=D

Então eu fiz isso, eu estou com dificuldade em saber qual é o índice do último elemento de cada linha, ja que as linhas não tem um tamanho específico

Entendi…

Assim, cara… Cada posição do array, vai conter a linha, né?, daí a gente faz assim:

[code]//Dividindo em linhas
String[] array = textArea.getText().split("\n");

for(int i = 0; i < array.length(); i++){
// primeiro a gente tira os espaços em branco do final da linha
String str = array[i].trim();
// dai a gente verifica se o último caracter é o ‘;’
if (str.charAt(str.length() - 1) == ‘;’){ //pega o caracter que está na última posição da String
// último caracter é ‘;’
} else {
// último caracter não é ‘;’
}
}[/code]

Dá pra fazer assim tbm!

String textarea = "texto01;\n texto02;\n text03";
		
                 //separa a string por linhas
		String aux[] = textarea.split("\n");
		
                 //itera a linha e atravez de expressoes regulares verifica ultimo digito
		for(int i = 0;i< aux.length;i++){
			if(aux[i].matches("(.*;$)+")){
				System.out.println("Linha "+i+" tem ;");
			}else{
				System.out.println("Linha "+i+" não tem ;");
			}
		}

Resultado:

Linha 0 tem ;
Linha 1 tem ;
Linha 2 não tem ;

Estou com mais uma dificuldade
Depois que eu separei linha por linha, como eu faço pra separar token por token?

Ex: eu tenho o seguinte texto:
String d ;
int e , f ;

Queria que ficasse assim:

Linha [0] token [0] : String
Linha [0] token [1] : d
Linha [0] token [2] : ;
Linha [1] token [0] : int
Linha [1] token [1] : e
Linha [1] token [2] : ,
Linha [1] token [3] : f
Linha [1] token [4] : ;

Eu tentei fazer, mas não consigo arrumar o erro.
O erro está na palavra.split(" ").
Segue o código:

texto = txtCodigo.getText();// texto recebe o conteudo do txtCodigo
String linha[] = texto.split("\n");// separa as linhas
String token[] = null ;// armazena os tokens
int qtdeLinha = linha.length ; // armazena a quantidade de linhas
int i=0,j=0;// variáveis de controle
String palavra = null ;
int qtdePalavra = 0 ;
while(i < qtdeLinha-1)
{
        palavra = linha[i] ;
    	qtdePalavra = palavra.length() ;
        while(j < qtdePalavra-1)
        {
        	token[j] = palavra.split(" ");
        	j++;
        }
        i++ ;
}

O método split aceita " "? tenta

palavra.split("\s");

Vou tentar

Obrigado

Mesmo assim continua com o mesmo erro.
Acho que o problema deve ser de conversão

[quote=paulinhopamec]Estou com mais uma dificuldade
Depois que eu separei linha por linha, como eu faço pra separar token por token?

Ex: eu tenho o seguinte texto:
String d ;
int e , f ;

Queria que ficasse assim:

Linha [0] token [0] : String
Linha [0] token [1] : d
Linha [0] token [2] : ;
Linha [1] token [0] : int
Linha [1] token [1] : e
Linha [1] token [2] : ,
Linha [1] token [3] : f
Linha [1] token [4] : ; [/quote]

Use StreamTokenizer. Ele separa um arquivo em linhas e tokens.

http://java.sun.com/javase/6/docs/api/java/io/StreamTokenizer.html

Cara, pelo q eu entendi, tu tá tentando fazer um analisador léxico. Disciplina de compiladores? ehehe

Tenta o split("\b"); ele transforma

String a, b;

em:

String

a
,

b
;

Daí é só passar um for, pra retirar os espaços em branco, e pá e tals \o/
(pô, deve ter uma expressão regular que já corta os espaços em branco, mas não lembro de cabeça aqui)

É disciplina de compiladores sim, rs

ae galera, preciso de uma ajudinha
tenho que fazer uma tabuada e exibir os resultados em jtext area
ai vem o problema:
os resultados devem ser imprimidos no jtext area em colunas, e o numero de colunas deve ser inserido pelo usuario (de 1 a 9 colunas)
tipo assim - 2 colunas vai exibir TABUADA 1 E 2
TABUADA 3 E 4
e assim em diante
alguem pode me ajudar???