在 Java zyBooks 中添加空格

Adding whitespace in Java zyBooks

这是我现在拥有的:

import java.util.Scanner;

public class Welcome {
   public static void main(String[] args) {
      // Complete this statement to create a new instance of Scanner passing in System.in
      Scanner scan = new Scanner(System.in);

      // Complete this statement to use the scanner object to read a string from the user
      String user_name = scan.next();
  
      // Add the statement to print the desired output
      System.out.println("Hello" + user_name + "and welcome to CS Online!");
  
   }
}

如果用户名 = Joe,则输出:Hello Joe,欢迎来到 CS Online! 我通过在“Hello”之后放置一个 space 并在“and”之前放置一个 space 来修复它,如下所示:

System.ou.println("Hello " + user name + " and welcome to CS Online!");

我的问题是,是否有更好的方法在变量和字符串之间添加 whitespace?我的做法似乎不太好.

您可以使用 System.out.printf(立即打印)或 String.format(returns 结果为 String),这样您就可以只使用一个 String 的占位符值被变量替换,%sString 变量的占位符。

当您有多个要在 String 中打印的变量时,这会特别有用。

String userName = scan.next();
System.out.printf("Hello %s and welcome to CS Online!", userName);

请注意,我还将 user_name 更改为 userName 以遵循正确的 Java 驼峰式命名约定,因为您询问的是良好做法。

这是一个包含多个变量的示例:

String firstName = scan.next();
String lastName = scan.next();
  
System.out.printf("Hello my first name is %s and my last name is %s!", firstName, lastName);

我不知道为什么这应该是不好的做法。我的意思是这就是你想要的 - 有两个空格,一个在“Hello”之后,一个在“and”之前,但事实上,有更好的方法来实现这一点。通过使用格式化,您将只有一个字符串和一个参数。

System.out.printf("Hello %s and welcome to CS Online!\n", user.name);