Ajuda com "decrementar" asteriscos de uma String [RESOLVIDO]
9 respostas
J
Jo_Paulo_Vasconcelos
Boa tarde pessoal,
Estou com um exercício para fazer que pede para criar um triangulo retangulo com asteriscos, usando laços e condições.
Conforme abaixo:
Sei que estou fazendo isso “porcamente”, mas pensei em fazer dessa forma:
public class Principal {
public static void main(String[] args) {
int i=0;
String temp = "**";
String asterisco ="";
for(i=0;i<=12;i++){
if(i==0){
asterisco ="*";
System.out.println(asterisco);
}
else{
if(i==1){
asterisco += temp;
System.out.println(asterisco);
}
else{
if(i==2){
asterisco += temp;
e assim por diante… o problema é quando eu chego no if(i==7) que seria onde eu iria decrementar da variavel asterisco, pensei assim:
Porém a class String não me permite decrementar dessa forma, alguém conhece alguma forma de decrementar a mesma?
Caso não exista, alguém poderia me dar uma esclarecida de uma outra forma mais fácil de fazer esse triangulo.
ps: Preciso de uma forma realmente mais fácil, sem grandes complicações para que eu possa entender oq estou fazendo.
um triângulo retângulo é muito mais fácil do que isso… ele tem um ângulo reto (90º), lembra?
é assim:
**
*
ficou mais fácil agora ?
EDIT:
e só pra complementar… você poderia cortar asteriscos da sua string com os métodos substring() ou replaceFirst(), ambos da classe String
J
Jo_Paulo_Vasconcelos
Opa, valeu digão.
No cabeçalho do exercicio pede para fazer um triangulo retangulo e embaixo fala q eh similar a este q postei.
Vou dar uma estudada nesses metodos substring() e replaceFirst() e já posto aqui se deu certo.
Obrigado meu caro!
Rodrigo_Sasaki
Sem problemas
Se tiver que fazer o triângulo do desenho, que se não me engano é o isóceles, também dá com esses métodos…
ou se tiver um conhecimento de expressões regulares da pra usar replaceAll(), só pra brincar, rs.
J
Jo_Paulo_Vasconcelos
Digao,
Usei o metodo substring() e deu certinho para o q eu queria.
Fiz da seguinte forma:
Por enquanto vou utilizar assim mesmo pois estou muito garrado aqui, mas com o tempo vou procurando formas de fazer algoritmos mais inteligentes ne hehe
Obrigado pela ajuda ai meu amigo!
Até
Rodrigo_Sasaki
cuidado pois você precisa de um número dinâmico, se colocar o 11, ele só vai diminuir sua string uma vez.
se for fazer algo hard coded assim eu sugiro que use o replaceFirst()
Mesmo assim, qdo acabar essa lista de exercicios aki, vou dar uma estudada nesses metodos q vc me passou.
Valeu meu caro!
Rodrigo_Sasaki
OK, não vou te passar código pronto pra você conseguir estudar e descobrir por você mesmo, mas refatora isso depois, por favor! hehehe
J
Jo_Paulo_Vasconcelos
Cara, desculpa a lerdeza.
Agora q percebi que posso criar uma variavel para incrementar aquela igualdade do if(i == num) e depois nos decrementos da string, colocar uma variavel para decrementar -2 até chegar a 1.
HAUSUHASHUHUSA
Bom, é apanhando q se aprende ne, vou tentar fazer aki de uma forma mais inteligente!
Valeu pelo toque ai!
J
Jo_Paulo_Vasconcelos
Digao, consegui melhorar um pouco.
Da uma olhada se é mais ou menos isso q vc imaginava tbem…