Erro doido

Galera, não entendo porque no código abaixo o comando “\n” não funciona… Se eu digitar “aa”, ele imprime aa, mas quando digito “\n” ele não quebra linha… Alguém poderia me ajudar???

import javax.swing.*;
import java.awt.Container;
import java.awt.*;
import java.awt.Graphics;
 
public class Exe1 extends JApplet {
        String sN1, mensagem="";
        int dN1, resultado;
    
    public void init() {
        sN1 = JOptionPane.showInputDialog("Digite um número: ");
}
    public void paint (Graphics g){
        mensagem = busca(sN1);
        g.drawString(mensagem, 25,25);
    }
    
    public String busca (String n1){
        String m="";
        dN1 = Integer.parseInt(sN1);
        for (int i = 0; i < dN1; i++){
            for (int j = 0; j < dN1; j++)
                m += "* ";
            m += "\n";
        }
        return m;
    }
} 

tenta dar 2 \n…

“\n\n”

[]'s

Não deu certo. Continuou não quebrando linha…

Isso deve-se ao facto de ‘\n’ ser um char e não uma String. Tu estás a tratá-lo como uma string, metendo as aspas em vez das apóstrofes, e por isso não funciona. O correcto seria assim:

m += '\n' ;

Espero que resolva :wink:

Agradeço a ajuda, mas não deu certo.

Mesmo colocando ‘\n’ ele não quebra linha… Tem alguma regra por trás disso.

Supostamente devia dar porque testei assim:

public class teste {

public static void main(String args[]) {
String m = "";
for (int i = 5; i>=0;i--) {
m += " Fabio";
m += '\n';
System.out.println(m);
}
}
}

O output mostra que a sintaxe está correcta para o efeito. Vou analisar melhor o teu código…pode ser que o problema esteja noutro sítio.