jTextarea

24 respostas
F

estou tentando pegar uma linha de um jtextarea, trata-la e depois setar de volta no textarea linha por linha alguem sabe como posso fazer isso.

24 Respostas

fchaguala

Complicaste muito na explicacao. Felizardo Chagauala(Maputo,Maçambique). :?: :slight_smile:

E

Explica melhor o que tu ta querendo fazer!!!

Não deu pra entender :wink:

F

Olá! Pessoal. Sou iniciante em JAVA e estou com um problema que talvez para vcs seja simples, mas para mim é difícil, também sei das regras do fórum que é nao repetir perguntas,
mas já olhei vários post e mesmo assim nao consegui fazer o que eu quero. Bom o meu problema é o seguinte quero abrir um arquivo txt com o JTextArea, e posteriormente quero trocar palavras por outras, mas quero trocar essas palavras a partir do espacos em branco que tenho dentro do meu arquivo. Se alguém puder me ajudar agradeco.

attt

P

Eu não entendi muito bem, mas parece que você quer armazenar em variável cada linha de um jtextArea, bem tenta assim então

String textArea = seuComponenteAqui.getText();
String linhas[] = textArea.split("\n");

Então por exemplo sua text area está escrita assim:

Olá, testando
JTextArea
E pulando linhas

cada linha ficará armazenada dentro da array linhas então esse será jeito que o que eu falei ficará armazenado.
linha[0] = “Olá, testando”
linha[1] = “JTextArea”
linha[2] = “E pulando linhas”

P

Opa desculpe postei duas vezes sem querer, cliquei em citar:p

F

[quote=pb600]Eu não entendi muito bem, mas parece que você quer armazenar em variável cada linha de um jtextArea, bem tenta assim então

String textArea = seuComponenteAqui.getText();
String linhas[] = textArea.split("\n");

Então por exemplo sua text area está escrita assim:

Olá, testando
JTextArea
E pulando linhas

cada linha ficará armazenada dentro da array linhas então esse será jeito que o que eu falei ficará armazenado.

F

i

RenanRosa

Cara, terá que usar a lógica e percorrer todos os caracteres do jtextarea, começa do primeiro, e vai concatenando em uma nova string até achar o caracter \ antes do n (\n = enter) assim você adiciona a string e depois continua da posição onde parou até o próximo \n, isso dentro de um loop

F

Olá!! Consegui ler o txt por linhas, mas agora eu quero usa charAt (0) para localizar a primeira coluna e trocar po"con(", mas quando coloco para o charAT retornar da um erro. Só para lembrar que sou inciante. Obrigado quem já me ajudou.

public static void main (String [] args) throws Exception{

FileReader reader = new FileReader( new File( "c:\\arvore_solos.txt" ) );
   BufferedReader leitor = new BufferedReader( reader );
   String linha = null;
     
 
       
   while( ( linha = leitor.readLine() ) != null ) {
      System.out.println (linha);

}
}

RenanRosa

o que você quer fazer com o charAt(int) ???
que erro está dando ?
como está usando
posta o código onde você usa o charAt(int)

RenanRosa

o que você quer fazer com o charAt(int) ???
que erro está dando ?
como está usando
posta o código onde você usa o charAt(int)

F

Renam, esse é o código que tenho, quero trocar a primeira pocisao da linha por “cond([”, caso ela seja vazia.

public static void main (String [] args) throws Exception{

FileReader reader = new FileReader( new File( "c:\\arvore_solos.txt" ) );
   BufferedReader leitor = new BufferedReader( reader );
   String linha = null;
     
         
   while( ( linha = leitor.readLine() ) != null ) {
     
      if (linha.charAt(0)!= ' '){
          linha.charAt(0) = "cond([";
      }

}
}

RenanRosa

Fernando, o charAt(int) retorna apenas um caracter, e não varios no caso de “cond([”
cond([ tem mais de um caracter, então você teria que fazer algo assim:

if (linha.charAt(0)!= ' '){ 
    linha = "cond([" + linha;
}

pois o charAt não atribui uma String, e sim um char

F

Olá!! Pessoal, primeiramente quero agradecer pela ajuda e perguntar pq nao estou conseguindo pesquisar um char, bom eu estou precisando abrir um arquivo txt do HD, pesquisar uma posicao na linha e se nessa posicao estiver um espaco vazio trocar por “cond([”, e posteriormente salvar esse arquivo. Meu código é esse.

public static void main (String [] args) throws Exception{

FileReader reader = new FileReader( new File( "c:\\arvore_solos.txt" ) );
   BufferedReader leitor = new BufferedReader( reader );
   String linha = null;
    FileWriter out = new FileWriter("c:\\arvore_solos11.txt"); 
   while( ( linha = leitor.readLine() ) != null ) {
    
    if (linha.charAt(0) != ' '){
linha = "con([" + linha;
out.write(linha);

out.close();
}

}

}

RenanRosa

Fernando Ruiz:
Olá!! Pessoal, primeiramente quero agradecer pela ajuda e perguntar pq nao estou conseguindo pesquisar um char, bom eu estou precisando abrir um arquivo txt do HD, pesquisar uma posicao na linha e se nessa posicao estiver um espaco vazio trocar por “cond([”, e posteriormente salvar esse arquivo. Meu código é esse.

public static void main (String [] args) throws Exception{

FileReader reader = new FileReader( new File( "c:\\arvore_solos.txt" ) );
   BufferedReader leitor = new BufferedReader( reader );
   String linha = null;
    FileWriter out = new FileWriter("c:\\arvore_solos11.txt"); 
   while( ( linha = leitor.readLine() ) != null ) {
    
    if (linha.charAt(0) != ' '){
linha = "con([" + linha;
out.write(linha);

out.close();
}

}

}

Você quer pesquisar na linha em geral ou apenas no primeiro caracter ?
seria isso ??

linha = linha.replace(" ", "con([");
RenanRosa

Alterei a resposta de cima!

F

Renan, na verdade eu terei que pesquisar em algum momento no primeiro caracter e também na linha em geral e posteriormente salva essas linhas em um novo arquivo.
Para o caracter da primeira linha estou testando : método trim()
e para linha inteira agora com tua dica o replace.

RenanRosa

Fernando Ruiz:
Renan, na verdade eu terei que pesquisar em algum momento no primeiro caracter e também na linha em geral e posteriormente salva essas linhas em um novo arquivo.
Para o caracter da primeira linha estou testando : método trim()
e para linha inteira agora com tua dica o replace.

agora resolveu seu problema ? :smiley:

F

Sim o replace irá solucionar.

Uma pergunta porque o charAt nao retorna a sílaba daquela posicao quando eu uso um arquivo txt?
E também porque nao estou conseguindo salvar o novo arquivo depois que alterei as linhas?

valeu

RenanRosa

Fernando Ruiz:
Sim o replace irá solucionar.

Uma pergunta porque o charAt nao retorna a sílaba daquela posicao quando eu uso um arquivo txt?
E também porque nao estou conseguindo salvar o novo arquivo depois que alterei as linhas?

valeu

o chaAt retorna apenas 1 letra, pois é charAt significa “caracter na posição” ai passa a posição por parametro, e ele retorna um caracter apenas, e não uma string (mais de um caracter se torna String)
para que retorne uma silaba teria que ser
linha.charAt(3) + linha.charAt(4) + linha.charAt(5) e assim vai indo…

para que salve no arquivo você precisa gravar dentro dele, antes de tudo delete o conmteudo para adicionar um novo, e como o arquivo está aberto em leitura dentro de um loop você não vai conseguir completar o que está querendo fazer, o jeito é criar um arquivo temporario, no final quando salvar todas as linhas novas você fecha o arquivo normal, delete e renomeia o temporario.
ou então você salva todas as linhas em uma unica variavel, deleta o conteudo dentro do arquivo e depois do loop que leu você cria outro para salvar.

F

Olá!! Estou com um problema no código abaixo, ele está em loop infinito, alguém poderia me ajudar. Esse código é para selecionar um número entre 1 a 7 e ele dizer qual dia da semana é esse, mas enquanto o número for diferente de zero (0).

[public class EnquantoDiferenteZero {

public static void main (String [] args){

String n;

n = JOptionPane.showInputDialog("Digite o número correspondente da semana: " );

int v = Integer.parseInt(n);

while (v != 0) {

switch (v){
      case 2 :
          System.out.println("Segunda feira");
          break;
      case 1 :
          System.out.println("Domingo");
            break;
      case 3 :
          System.out.println("Terca feira");
            break;
      case 4 :
          System.out.println("Quarta feira");
            break;
       case 5 :
          System.out.println("Quinta feira");
             break;
       case 6 :
          System.out.println("Sexta feira");
            break;
       case 7 :
          System.out.println("sabado feira");
           break;
           default:
          System.out.println("Número incorreto");
    }

}

}
}]

RenanRosa

Cara, 2 puchões de orelhas:
1º: você deveria ter criado um tópico novo
2º Usar o bbcode “code”

voltando para o seu problema, coloque o:

n = JOptionPane.showInputDialog("Digite o número correspondente da semana: " );

dentro do while
pois do jeito que fez, a variavel v nunca vai mudar o valor, sempre vai continuar com apenas 1 valor e nunca vai sair do loop, então faça assim:

public class EnquantoDiferenteZero {
public static void main (String [] args){
String n;




int v = 1; //1 para entrar no laço, mas apos entrar no laço ele pergunta qual a opção, e depois entra no switch


while (v != 0) {
n = JOptionPane.showInputDialog("Digite o número correspondente da semana: " );
v = Integer.parseInt(n);
switch (v){
case 2 :
System.out.println("Segunda feira");
break;
case 1 :
System.out.println("Domingo");
break;
case 3 :
System.out.println("Terca feira");
break;
case 4 :
System.out.println("Quarta feira");
break;
case 5 :
System.out.println("Quinta feira");
break;
case 6 :
System.out.println("Sexta feira");
break;
case 7 :
System.out.println("sabado feira");
break;
default:
System.out.println("Número incorreto");
}

}

}
}
F

Deu certo. Foi mal, mas agora eu sei.
Obrigado Renan.

RenanRosa

Fernando Ruiz:
Deu certo. Foi mal, mas agora eu sei.
Obrigado Renan.

de nada, sempre que precisar é só postar :smiley:
ai envia MP que eu tento ajudar e responder no tópico

Criado 26 de abril de 2011
Ultima resposta 19 de mai. de 2011
Respostas 24
Participantes 6