Duvida com string sem ser em interface grafica!

7 respostas
W

to com dúvida nessa questão:

  1. Fazer um programa que leia três variáveis do tipo string e as mostre centralizadas na tela.

eu já fiz isso:

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
package lista1_3;

import java.util.Scanner;

/**

*
  • @author [telefone removido]
    */
    public class Main {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {
      // TODO code application logic here
      Scanner novo = new Scanner(System.in);
      System.out.println(“Informe a primeira mensagem”);
      String a = novo.nextLine();
      System.out.println(“Informe a segunda mensagem”);
      String b = novo.nextLine();
      System.out.println(“Informe a terceira mensagem”);
      String c = novo.nextLine();
      int quant1 = a.length();
      int quant2 = b.length();
      int quant3 = c.length();
      int meio = 40 - (quant1/2);

    }

}

estou contando que a tela tem 80 posições, o que tá faltando é apresentar as strings na posição meio encontrada, como faço?

7 Respostas

fmad27

O valor que sobrou incrementa com espaços no início da sua String de saída.

W

naum dá isso tem que ser feito automaticamente…tipo eu entro com a string e ele imprime automaticamente na posição encontrada…

rodpuc

Se eu entendi bem, sua dúvida é como imprimir a String na tela, certo?

System.out.print("Aqui vai a sua String"); //imprime

ou

System.out.println("Aqui vai a sua String"); //imprime e pula para a próxima linha

mas há um pequeno descuido seu, as strings não serão impressas de forma centralizada… tente descobrir sozinho pq :wink: e qq coisa volte a perguntar

W

como imprimir eu sei…mais eu tentei muito desde ontem tento e nada…se saber por favor gostaria que me contasse…

eldercrul

cara acho que é como disseram, algo como:

int meio = 40-(quant1 / 2);
int i;
for(i=1;i<=meio;i++){
     System.out.print(" ");
}
System.out.println(a);
rodpuc

calma, acho q a sua dúvida não foi muito bem explicada…
pode tentar detalhar melhor oq vc precisa?

se for o erro ao qual me referi, oq acontece é q deve estar imprimindo assim (para entradas: ab, abcd, abcdef):

(espaços) ab (espaços) abcd (espaços) abcdef
(espaços) pq n dá p escrever os espaços… ¬¬)

ou seja, não esta centralizando. Vc tem o tamanho da String, n tem? Vc deve então retirar da sua variável “meio” metade do tamanho da string (cuidado! use uma cópia da variável “meio” senão qdo for utilizar ela para a linha seguinte… perdeu, certo?). Então obterá o correto.

é essa a sua dúvida? (Se n for, seu programa tá com esse problema de qq forma)

W

muito bom, resolveu sim, valew msm…eu tava pensano que tinha um comando pra imprimir começando da posição que eu informasse, por isso naum pensei em muita coisa…muito obrigado msm.

Criado 26 de março de 2009
Ultima resposta 26 de mar. de 2009
Respostas 7
Participantes 4