gpt4 book ai didi

java - 如何从右到左沿对角线打印字符串?

转载 作者:行者123 更新时间:2023-11-30 07:04:50 25 4
gpt4 key购买 nike

我正在在线练习一些 java 练习,遇到一个会以这种方式打印字符串“DIAGONALLY”的练习:

D
I
A
G
O
N
A
L
L
Y

我完成了没问题。然后我决定尝试像这样打印出来:

D
I
A
G
O
N
A
L
L
Y

到目前为止,这是我尝试过的:

public class Examples {
public static void main(String[] args) {
String d = "DIAGONALLY";
String s = "";

for (int i = 0; i < d.length(); i++) {
System.out.printf("%s%s\n", s, d.charAt(i));
if (i < 6)
s = s + " ";
else
s = s - " ";
}
}
}

现在显然是 "else s = s - "";"部分是错误的,但我现在只是把它放在那里,因为我不知道如何从字符串中减去一个空格。如何打印从右到左对角线从 6 开始的 d 的子串?

最佳答案

您不能从字符串中减去字符,但您可以使用 substring() 方法提取字符串的一部分,该方法有两个参数:要包含的第一个字符的索引您的“剪切”,以及您要包含的最后一个字符之后的第一个字符的索引。

但是,在这种情况下,您最好为每一行生成一个新的 String: new String(' ', x) 会给您由 x 空格组成的 String(抱歉,语言困惑:该构造函数存在于 C# 中,但不存在于 Java 中。)

以后(当你开始编写处理大量数据的更大程序时),请注意字符串连接 (+) 和 substring() 越大越慢字符串是。如果您需要逐渐操作一个大字符串,您应该使用 StringBufferStringBuilder

关于java - 如何从右到左沿对角线打印字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com