java - 如何格式化输出?
问题描述
(在 Java 中)编写一个接受名称并将其格式化的程序,如下所示: 如果输入是:John Anthony Brown
那么输出必须是:Brown, John A.
这是我所拥有的
int mn;
String input3;
int fn;
int ln;
String firstName;
String lastName;
String middleName;
Scanner scnr = new Scanner(System.in);
String input = scnr.nextLine();
fn = input.indexOf(" ");
firstName = input.substring(0, fn);
middleName = input.substring(fn+1, input.length());
mn = middleName.indexOf(" ");
lastName = input.substring(mn+1, input.length());
System.out.println(lastName + ", " + mn + " " + firstName + ".");
}
我不断尝试不同的事情并得到奇怪的输出,例如“ry A Lee, 1 Mary”。对于输入“嫁给李”
这个话题在我的课上从来没有涉及过,我很困惑。
解决方案
因为这是作业,所以我会给出代码片段:
首先,用于split()
将文本分解为单词:
String[] names = input.split(" ");
然后建立你的结果:
String result = names[2] + ", " + names[0] + ", " + names[1].charAt(0) + ".";
有更优雅的方法可以做到这一点,但这种方法可以说是最容易理解的。
你可以通过迎合不同数量的名字来变得更漂亮。
推荐阅读
- python - 转换一个刚性变换,使旋转中心不是原点
- websocket - 如何使用 Jupyter 笔记本连接多个 websocket
- multithreading - 达到超时时终止进程并在 Rust 中处理输出
- angular - Angular中的for-of循环
- google-sheets - 谷歌表格查询总和返回不需要的文本
- static-analysis - 合并静态分析器报告
- c# - 在 C# Winform 应用程序中我的 dGV 中存在货币格式列计算问题
- r - 你能把它翻译成ggplot吗?
- sql - 编写涉及复杂类型的 Spark-SQL 查询
- firebase - Firebase 测试实验室显示有关超出配额的消息