gpt4 book ai didi

java - 初级 Java - 使用 substring() 将长字符串分成单独的行

转载 作者:行者123 更新时间:2023-12-01 15:50:30 27 4
gpt4 key购买 nike

我们假设为一个项目编写一个日历。我使用一个数组来跟踪一个月中有多少天,并获取一长串等于该数组索引值的数字。然后,我使用循环填充字符串,直到该循环等于该索引的值。

字符串被加载到我们教授给出的文本形状中。我想将 substring() 生成的每个文本行显示到一个单独的行中。我尝试从较高的索引 (30, 59) 开始,但它返回错误,因为我的初始字符串不够长。

所以我想做的是将一长串数字分成单独的行。我的一个同学说用子串。一般来说,它确实有效,但只会给我第一行。

这是生成字符串的方法。

    public String toString() {

monthPlusOne = month + 1;
for (int i = 0; i < monthsArray[monthPlusOne]; i++) {
String temp;
//temp = "" + i;
subLine = subLine + (i+1) + " ";

}
totalLine = subLine;


String output = monthText + " " + year + " \n "
+ "Su Mo Tu We Th Fr Sa\n" + totalLine;

return output;
}

它输入此方法,该方法最初只有数字形式的日历,并手动插入“\n”。当找到那些“\n”时,字符串就会 split

public static void displayCalendar() {
String s = calendar.toString().substring(30);

// extract all of the lines in s
// split s on \n
String[] lines = s.split("\n");
int index = 0;
for (String line : lines) {
t[index].setText(line);
index++;
}
}

最佳答案

我建议不要在这里使用substring。没有它,这可以设计得更干净。这是我的不使用子字符串的建议。 这主要是您所拥有的,但我希望在重新迭代该方法时可以看到不需要 substring

要绘制日历,需要两件事:开始日期和该月的天数(或结束日期,即该月的开始日期和该月的天数)。

现在,绘制日历的过程就是绘制网格的过程。想象每个单元格都用 (x, y) 标识,左上角为 (0,0),而 x 代表日期一周内(周日为 0,周六为 6)。

  1. 找到初始(x, y)y 将始终为 0(第一行),但 x 将根据一周的开始日期而变化。例如,(2,0) 表示从星期二开始的月份。

  2. 虽然没有放置足够的天数,但请在单元格 (x, y) 中放置另一天,为其提供适当的月份值并提前 (x, y) 就像常规日历上的第一天、第二天、第三天...

祝你编码愉快。

关于java - 初级 Java - 使用 substring() 将长字符串分成单独的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6158464/

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