string – como colocar espaço entre os resultados em println Java?

Sou iniciante e criei um laço em do while para receber nomes e imprimir o resultado na tela, mas quando imprimi o resultado os nomes ficam todos grudados sem espaço, acredito que seja algo simples mas ja quebrei a cabeça pra descobrir e ainda nao consegui, segue o codigo abaixo.

Scanner entrada = new Scanner (System.in);

    int i = 0;
    String x = "";
    String todos = "";
    
    do {
        System.out.println("Escreva seu nome ");
        x = entrada.nextLine();
        i++;
        todos = todos + x;
        
        
    
    }while (i < 4);
    
    

    System.out.println( " Os nomes sao n " +  todos );
    
    entrada.close();
} 

}

Método println não está executando no JAVA

Está ocorrendo o seguinte erro em meu código JAVA:

The method println(String) in the type PrintStream is not applicable for the arguments (String, String, int, float)

Código:

import java.util.Scanner;

public class App {
    public static void main(String() args) throws Exception {
        Scanner teclado = new Scanner(System.in);
        System.out.print("Digite o sei nome: ");
        String nome = teclado.nextLine();
        System.out.print("Digite a sua idade: ");
        int idade = teclado.nextInt();
        System.out.print("Digite a sua altura: ");
        float altura = teclado.nextFloat();
        System.out.println("Seu nome é %s, sua idade é %i e sua altura é %2.f",nome,idade,altura);
    }
}