Eu tenho um jTextArea com várias linhas, como eu faço pra saber se tem o “;” no último caracter de cada linha?
Obrigado
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???