Java语言如何将一条语句打印在三行上且单词居中?
Java小白,笨办法尝试失败望大神指教。 居中 必须要有参考物,如果没有参考物,居不居中就没意义了。假如Knowle is Power要分三行居中,那必须有个参考物,
假如参考物是20个"-"组成的虚线:--------------------
那它们居中就是这样子的,请问LZ是不是想要这种效果呢?
这是代码:
public class Demo {
public static void main(String[] args) {
//打印虚线
printMsg("", 20, '-', "");
printMsg("Knowledge", 20, ' ', "CENTER");
printMsg("is", 20, ' ', "CENTER");
printMsg("Power", 20, ' ', "CENTER");
//打印虚线
printMsg("", 20, '-', "");
printMsg("Knowledge", 20, ' ', "LEFT");
printMsg("is", 20, ' ', "LEFT");
printMsg("Power", 20, ' ', "LEFT");
printMsg("", 20, '-', "");
printMsg("Knowledge", 20, ' ', "RIGHT");
printMsg("is", 20, ' ', "RIGHT");
printMsg("Power", 20, ' ', "RIGHT");
printMsg("", 20, '-', "");
}
public static void printMsg(String msg, int num, char placeholder, String align){
if(msg != null && msg.length() > 0){
if(msg.length() > num){
System.out.println(msg);
}else{
int spaceNum = num - msg.length();
if(align.equals("CENTER")){
for(int i = 0; i < spaceNum; i++){
if(i < spaceNum/2){
System.out.print(placeholder);
}else if(i == spaceNum/2){
System.out.print(msg);
}else{
System.out.print(placeholder);
}
}
}else if(align.equals("LEFT")){
System.out.print(msg);
for(int i = 0; i < spaceNum; i++){
System.out.print(placeholder);
}
}else if(align.equals("RIGHT")){
for(int i = 0; i < spaceNum; i++){
System.out.print(placeholder);
}
System.out.print(msg);
}
System.out.println();
}
}else{
for(int i = 0; i< num; i++){
System.out.print(placeholder);
}
System.out.println();
}
}
} 前来学习。 adacai 发表于 2021-7-22 16:16
前来学习。
哈哈互相学习 windows下的文本文件换行符:\r\n
linux/unix下的文本文件换行符:\r
Mac下的文本文件换行符:\n 引号里加空格强行居中下。 每个单词打印一行不就完了吗? https://img12.360buyimg.com/ddimg/jfs/t1/192752/7/14316/28813/60f92c11Ea13bf5e0/cc4e081bcdc7dbc2.png 潇未然 发表于 2021-7-22 16:24
windows下的文本文件换行符:\r\n
linux/unix下的文本文件换行符:\r
Mac下的文本文件换行符:\n
谢谢大佬细致指点,已经成功换行了:lol,回车笨办法不行哈{:1_896:} tianruo1987 发表于 2021-7-22 16:27
每个单词打印一行不就完了吗?
可以是可以,当这样就不符合题目的意义了;www 潇未然 发表于 2021-7-22 16:26
引号里加空格强行居中下。
我把一个语句分三行断开的,每一段加引号会报错