scoelli Posted December 1, 2012 Report Share Posted December 1, 2012 Ola Estou a tentar fazer um editor de texto em java e nao consigo parar a inserção de linhas por inserção de linha vazia, alguem me poderá dar uma dica? int maxlinhas=100; String[][] linhas=new String[maxlinhas][]; int fim=0; char opcao; do{ System.out.println("Leitor 1.0"); System.out.println("(i)nserir linhas no fim (termine com uma linha vazia)"); System.out.println("(l)Listar linhas"); System.out.println("(a)pagar última linha)"); System.out.println("(e)ditar"); System.out.println("(p)esquisar"); System.out.println("(c)ontar"); System.out.println("(s)air"); System.out.println("Escolha uma Opção: "); opcao=input.next().charAt(0); switch (opcao){ //switch opcao inserir linhas no fim case 'i': System.out.println("introduza uma frase"); do{ String[]linha=input.nextLine().split(" "); linhas[fim]=linha; fim++; }while(????????); Link to comment Share on other sites More sharing options...
brunoais Posted December 1, 2012 Report Share Posted December 1, 2012 Indenta o código, sff. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
scoelli Posted December 1, 2012 Author Report Share Posted December 1, 2012 O que estarei a fazer mal? Escrevo linhas de texto mas, não consigo que pare quando a linha é vazia do{ String[]linha=input.nextLine().split(" "); linhas[fim]=linha; }while(!linhas[fim].equals(null)); Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 1, 2012 Report Share Posted December 1, 2012 quantos elementos terá o array linhas quando se leu uma linha vazia ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
scoelli Posted December 1, 2012 Author Report Share Posted December 1, 2012 o utilizador escreve as linhas que quiser Mas, no inicio defeni 100: int maxlinhas=100; String[][] linhas=new String[maxlinhas][]; int fim=0; Link to comment Share on other sites More sharing options...
brunoais Posted December 2, 2012 Report Share Posted December 2, 2012 Basicamente estás a abordar o problema de uma forma errada. Tens que usar o hasNextLine para saber se o input já acabou. Podes tb forçar para ser no máximo 100 linhas nesse ciclo. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 2, 2012 Report Share Posted December 2, 2012 o utilizador escreve as linhas que quiser Mas, no inicio defeni 100: int maxlinhas=100; String[][] linhas=new String[maxlinhas][]; int fim=0; não respondeste à minha pergunta IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
scoelli Posted December 2, 2012 Author Report Share Posted December 2, 2012 È um editor de texto por isso nunca se sabe quantos elementos terá porque o utilizador pode escrever uma linha, duas, so uma frase, no inicio defeni como maximo 100 Link to comment Share on other sites More sharing options...
brunoais Posted December 2, 2012 Report Share Posted December 2, 2012 Basicamente estás a abordar o problema de uma forma errada. Tens que usar o hasNextLine para saber se o input já acabou. Podes tb forçar para ser no máximo 100 linhas nesse ciclo. "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 2, 2012 Report Share Posted December 2, 2012 vamos lá a ver ... quantos elementos terá o array linhas quando se leu uma linha vazia ? String[]linha=input.nextLine().split(" "); È um editor de texto por isso nunca se sabe quantos elementos terá porque o utilizador pode escrever uma linha, duas, so uma frase, no inicio defeni como maximo 100 o array linha está a ser preenchido com o valor lido, linha a linha !!!! por isso a tua resposta não faz sentido agora podes verificar o que foi lido (que era a resposta que daria se seguisses a linha de pensamento correcto à minha pergunta) ou podes fazer como o @brunoais referiu, verificar se existe alguma coisa a ler ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
scoelli Posted December 4, 2012 Author Report Share Posted December 4, 2012 (edited) Ola Relativamente aos elementos, temos 2 arrays: o primeiro [] é o numero de linhas que o utilizador vai escrever, neste caso 100; o segundo[] é o numero de palavras que terá cada linha. Já consegui sair do primeiro ciclo mas, agora não sei como (l) listar nem (a)apagar case 'i': System.out.println("introduza o texto"); do{ String linha[]=input.nextLine().split(" "); linhas[fim]=linha; fim++; }while(!input.nextLine().equals(" ")); break; case 'l': for (int i=0; i<linhas.length; i++) { for (int j=0; j<linhas[i].length; j++) System.out.println(linhas[i][j]); // só imprime a ultima linha e dá java.lang.NullPointerException } break; case 'a': ????? break; Edited December 23, 2012 by apocsantos Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 4, 2012 Report Share Posted December 4, 2012 System.out.println(linhas[i][j]); // só imprime a ultima linha e dá java.lang.NullPointerException acho estranho estar a dar esse tipo de excepção, mas deverá ser por estares a gravar a entrada vazia IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
scoelli Posted December 23, 2012 Author Report Share Posted December 23, 2012 Ola Continuo a não conseguir listar todas as linhas do array, le apenas a última, não consigo perceber porque: import java.util.Scanner; public class P1_TP2_EI_SandraCoelli { public static void main(String[] args) { Scanner input = new Scanner(System.in); String[][] linhas=new String[100][]; int fim=0; char opcao; do{ System.out.println("Leitor 1.0"); System.out.println("(i)nserir linhas no fim (termine com uma linha vazia)"); System.out.println("(l)Listar linhas"); System.out.println("(a)pagar ultima linha)"); System.out.println("(e)ditar"); System.out.println("(p)esquisar"); System.out.println("(c)ontar"); System.out.println("(s)air"); System.out.println("Escolha uma Opção: "); opcao=input.next().charAt(0); switch (opcao){ //switch INSERIR LINHAS case 'i': System.out.println("introduza o texto"); do{ String linha[]=input.nextLine().split(" "); linhas[fim]=linha; fim++; }while(!input.nextLine().equals(" ")); break; //switch LISTAR LINHAS case 'l': for (int i=0; i<fim; i++) { for (int j=0; j<linhas[i].length; j++){ System.out.print(linhas[i][j]); } System.out.println(); } break; Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 23, 2012 Report Share Posted December 23, 2012 porque razão tens de separar as palavras existentes na linha ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaquimfrancisco23 Posted November 18, 2015 Report Share Posted November 18, 2015 Alguem tem este programa editor de texto java 1.0 completo????Se tiverem e me o puderem passar agradecia Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now