Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JAVA中调整字符_Java - Fatal编程技术网

如何在JAVA中调整字符

如何在JAVA中调整字符,java,Java,我是Java新手,我正在尝试制作hashtags以适应我的文本。例如,如果我写“message hello,你好吗?”我希望它以大写字母打印,并且hashtag会根据我打印的字符数自行调整。你对我能用什么来实现这一点有什么建议吗 public void addMessage() { System.out.println("Write message followed by a text: "); String message = readString(); System.

我是Java新手,我正在尝试制作hashtags以适应我的文本。例如,如果我写“message hello,你好吗?”我希望它以大写字母打印,并且hashtag会根据我打印的字符数自行调整。你对我能用什么来实现这一点有什么建议吗

public void addMessage() {
    System.out.println("Write message followed by a text: ");
    String message = readString();
    System.out.println("############################################################");
    System.out.println("#                                                          #");
    System.out.println("#" + message.substring(7).toUpperCase() + "                 #");
    System.out.println("#                                                    #");
    System.out.println("############################################################");
}

您所需要做的就是计算字符串的长度,并输出指定次数的哈希值

下面的代码应该很有帮助

String hashs(int len) {
    return new String(new char[len]).replace("\0", "#");
}
int textLen = message.length();
System.out.println(hashs(len + 2));
System.out.println("#" + message.toUpperCase() + "#");
System.out.println(hashs(len + 2));
大概是这样的:

public void addMessage() {
    System.out.println("Write message followed by a text: ");
    String message = readString();

    System.out.println(createHashes(input.length() + 2));
    System.out.println("#" + createSpaces(input.length()) + "#");
    System.out.println("#" + input.toUpperCase() + "#");
    System.out.println("#" + createSpaces(input.length()) + "#");
    System.out.println(createHashes(input.length() + 2));
}

private String createHashes(final Integer numberOfHashes) {
    return new String(new char[numberOfHashes]).replace("\0", "#");
}

private String createSpaces(final Integer numberOfSpaces) {
    return new String(new char[numberOfSpaces]).replace("\0", " ");
}
输入/输出示例:

输入:嘿,你

输出:

###########
#         #
#HEY, YOU!#
#         #
###########
################
#              #
#HOW YOU DOIN'?#
#              #
################
输入:你好吗

输出:

###########
#         #
#HEY, YOU!#
#         #
###########
################
#              #
#HOW YOU DOIN'?#
#              #
################
您可以使用

这样,字符串打印将始终具有相同的宽度。对于本例,输出为:

#                 ONE     #
#                 TWO     #
#               THREE     #

请参考,字符“#”称为“散列”,而不是“hashtag”。使用
message.substring(7)
和一些基本数学来计算要打印的散列数。您可以使用。在调用
substring(7)之前,您应该检查
message
至少有7个字符
。请记住添加示例输入和输出,我发现在所提供的答案中有多种解释,可以用相同的字符生成特定长度的字符串:)