Java姓名格式化输出结果与预期不符问题排查求助
你当前代码的输出和预期不符主要是三个拼接逻辑的问题:
- 姓(
in[2])后拼接了带前置空格的逗号,导致出现Doe ,的错误格式 - 名(
in[0])输出了完整内容,预期只需要保留首字母加句号 - 名首字母和中间名首字母之间多了多余空格,应该直接拼接
修改后的代码如下:
import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // System.out.print("input :"); String input = sc.nextLine(); String[] in = input.split(" "); // System.out.print("output:"); if(in.length==3) // 调整拼接逻辑:姓后面直接跟逗号空格,依次拼接名首字母+点、中间名首字母+点 System.out.println(in[2] + ", " + in[0].charAt(0) + "." + in[1].charAt(0) + "."); else System.out.println(in[1]+", "+in[0]); } }
测试输入Pat Silly Doe时,输出结果为Doe, P.S.,符合预期。
内容的提问来源于stack exchange,提问作者Austin Belford
相关产品推荐
相关产品推荐

