吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1889|回复: 27
收起左侧

[Java 转载] Java语言如何将一条语句打印在三行上且单词居中?

[复制链接]
沧海一粟hh 发表于 2021-7-22 16:11
image.png image.png Java小白,笨办法尝试失败望大神指教。
image.png
023613d39a131771cd9fc31fe201d89.png
image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Goldrepo 发表于 2021-7-22 18:06
居中 必须要有参考物,如果没有参考物,居不居中就没意义了。
假如Knowle is Power要分三行居中,那必须有个参考物,
假如参考物是20个"-"组成的虚线:--------------------
那它们居中就是这样子的,请问LZ是不是想要这种效果呢?
图片.png
这是代码:
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();
        }
    }
}

点评

大佬。,我觉得他的课本,应该是刚开始,最简单的加空格到居中。  详情 回复 发表于 2021-7-23 16:01
adacai 发表于 2021-7-22 16:16
 楼主| 沧海一粟hh 发表于 2021-7-22 16:17
潇未然 发表于 2021-7-22 16:24
windows下的文本文件换行符:\r\n
linux/unix下的文本文件换行符:\r
Mac下的文本文件换行符:\n

免费评分

参与人数 1热心值 +1 收起 理由
沧海一粟hh + 1 谢谢@Thanks!

查看全部评分

潇未然 发表于 2021-7-22 16:26
引号里加空格强行居中下。
tianruo1987 发表于 2021-7-22 16:27
每个单词打印一行不就完了吗?
黄hsir 发表于 2021-7-22 16:28
 楼主| 沧海一粟hh 发表于 2021-7-22 16:29
潇未然 发表于 2021-7-22 16:24
windows下的文本文件换行符:\r\n
linux/unix下的文本文件换行符:\r
Mac下的文本文件换行符:\n

谢谢大佬细致指点,已经成功换行了,回车笨办法不行哈

点评

肯定不行的,你要转换成机器语言让java明白  详情 回复 发表于 2021-7-22 16:37
 楼主| 沧海一粟hh 发表于 2021-7-22 16:29
tianruo1987 发表于 2021-7-22 16:27
每个单词打印一行不就完了吗?

可以是可以,当这样就不符合题目的意义了
 楼主| 沧海一粟hh 发表于 2021-7-22 16:32
潇未然 发表于 2021-7-22 16:26
引号里加空格强行居中下。

我把一个语句分三行断开的,每一段加引号会报错
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表