Colocar asteriscos em volta dos nomes

6 respostas
A

n :( :( preciso fazer isso funcionar...
é uma daquelas coisas que coloca asteriscos em volta dos nomes, bem basico
porem só esta funcionando qnd o primeiro nome é maior que o segunda
nao entendo pq!
aí ta o codigo

da esse erro:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String idex out of range: 5

import prog.io.*;


class Desafio {
public static void main (String[] args){

ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();

String asteriscos = "***********************************************" +
"******************************************************************" +
"******************************************************************" +
"*****************************************************************";

String espacoVazio ="                                  " +                                                                 
"                                                      " +
"                                                      ";

String nome, sobrenome;
int largura, largurab, x, y; 
nome = in.readLine("Coloque seu nome: ");
sobrenome = in.readLine("Coloque seu sobrenome: ");
largura = sobrenome.length();
largurab = nome.length();

x = (largura - largurab - 1); 
y = (largurab - largura - 1);

String cima, intermediaria, linhanome, linhasobrenome, espacos, espacosX, espacosY;


if(largura > largurab)
{cima = asteriscos.substring(0, largura + 6);
espacosX = espacoVazio.substring(0, x);
espacos = espacoVazio.substring(0, largura + 2);
intermediaria = "**" + espacos + "**";
linhanome = "**  "  + nome + espacosX + " **";
linhasobrenome = "** " + sobrenome +  " **";}

else
cima = asteriscos.substring(0, largurab + 6);
espacosY = espacoVazio.substring(0, y);
espacos = espacoVazio.substring(0, largurab + 2);
intermediaria = "**" + espacos + "**";
linhanome = "** " + nome + " **";  
linhasobrenome = "**  " + sobrenome + espacosY + " **";


if(largura == largurab)
{cima = asteriscos.substring(0, largurab + 6);
espacos = espacoVazio.substring(0, largurab + 2);
intermediaria = "**" + espacos + "**";
linhanome = "** " + nome + " **";  
linhasobrenome = "** " + sobrenome + " **";}


//resultado
out.println(cima);
out.println(intermediaria);
out.println(linhanome);
out.println(intermediaria);
out.println(linhasobrenome);
out.println(intermediaria);
out.println(cima);
}}
[code]

[code]

6 Respostas

marciocamurati

Coloca seu código, dentro das tags Code, fica bem melhor a visualização, desse jeito o pessoal acaba não ajudando.

[]s

A

VLW

aborges

Este erro esta acontecendo em algum substring q vc esta utilizando… Vc esta passando um valor maior q o tamanho da mesma

Valew

A

O engraçado é que da erro sempre na parte que ta no “if” onde os comandos estao entre “{}” consigo fazer as outras duas funçoes e essa é a que nao da, ja experimentei trocar pela outra if e funcionou, aí a que ficou entre {} deu problema, nao entendo…

aborges

Como o codigo nao ta identado e a essas horas eu nao vou conseguir pensar logicamente, vai ficar um pouco dificil

Soh uma coisinha: O else contempla soh a 1a linha logo abaixo o o bloco todo? Caso seja o bloco todo, vc deve colocar ele entre {} tb :smiley:

A

:smiley: ehehe beleza, é que eu comecei a fazer informatica agora, deve fazer um mes +ou- entao sou bem “noob” ainda nessa area. Vlws! 8)

Criado 31 de outubro de 2006
Ultima resposta 1 de nov. de 2006
Respostas 6
Participantes 3