gpt4 book ai didi

java - 按长度分割字符串,保持子字符串完整

转载 作者:行者123 更新时间:2023-12-01 17:38:02 28 4
gpt4 key购买 nike

我已经分割了字符串“这是对字符串长度的测试” 成长度为 7(或更少)的子字符串,所以我有一个列表 strList,如下所示:[这个,是,一个,测试,for,thestri,ng,更长,比]

我需要以长度为 7 的行打印出来,保持子字符串完整:[这是一个测试,用于,thestri,ng,更长,比]

但是我得到了这个,但我找不到错误[这,这是,测试,for,thestri,更长,ng 比,七,字符,ers]

所以我想做的是获取子字符串的长度并将其与 7 个字符的限制 (L1) 进行比较,如果它小于 L1 - 获取下一个子字符串并将其添加到同一行(提供总和)它们的长度+它们之间的空白仍然是 7 或更小)。然后将新字符串添加到列表 strList2

package mylessons;
import java.util.*;

public class Level160 {

public static void main(String[] args) {
int L1 = 7; // length limit
int len1 = 0;
String tmpStr1 = "";
List<String> strList = new ArrayList<>();
List<String> strList2 = new ArrayList<>();

strList.add("this");
strList.add("is");
strList.add("a");
strList.add("test");
strList.add("for");
strList.add("thestri");
strList.add("ng");
strList.add("longer");
strList.add("than");
System.out.println(strList);

for (int k = 0; k < strList.size(); k++ ) {

// substring is shorter than L1 - 1 -->> adding to tmpStr1
if (strList.get(k).length() + len1 < L1 - 1) {
tmpStr1 = tmpStr1 + strList.get(k).toString() + " ";
len1 = (len1 + strList.get(k).length() + 1);
}

// substring is L - 1 (whitespace is last char) -->> adding to tmpStr -->> adding to strList2
if (strList.get(k).length() + len1 == L1 - 1) {
tmpStr1 = tmpStr1 + strList.get(k).toString();
strList2.add(tmpStr1);
len1 = 0;
tmpStr1 = "";
}

// substring is L -->> adding to tmpStr -->> adding to strList2
if (strList.get(k).length() + len1 == L1) {
tmpStr1 = tmpStr1 + strList.get(k).toString();
strList2.add(tmpStr1);
len1 = 0;
tmpStr1 = "";
}

if (strList.get(k).length() + len1 > L1) {
strList2.add(strList.get(k));
}
}
System.out.println(strList2);
}
}

感谢任何帮助:)

最佳答案

在第一次迭代中,您会遇到第一个 if 子句和第二个 if 子句。但第二个 if 子句没有清除 tmpStr1。这可能不是您的代码的唯一问题,但它暗示了我认为在修复代码时应该尝试做的两件事:

  • 确保每次迭代都恰好遇到一个 if 子句。
  • 每次向 strList2 添加内容时都会清除 tmpStr1 和 len1。

关于java - 按长度分割字符串,保持子字符串完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61010508/

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