Java 连接 4 个字符串然后截断



处理Java问题

我有 4 个字符串: s1s2s3s4我必须连接成一个。 如果后续生成的字符串长度超过 75 个字符,则需要截断,但从 s1 开始并截断该字符串的最右侧字符,直到它与其他 3 个字符一起适合 75。 如果我最终删除了 s1 中的所有字符,然后继续截断s2,再次从最右边的字符开始,直到s2+s3+s4 <=75等等。

有什么简单的方法可以做到这一点吗? 我一直在考虑一段时间()循环,但是当我检查s1+s2+s3+s4然后一次截断一个字符串时,它会变得非常复杂。

有人做过类似的事情并有一个好的解决方案吗?

您需要操作的不是字符串,而是其长度。

  1. 获取所有字符串的长度总和
  2. 检查哪个字符串需要截断
  3. 获取从截断字符串开始的总和。

将字符串的长度相加。如果结果大于 75,则计算要截断的字符数。截断第一个字符串,直到截断了正确的字符数,或者第一个字符串为空。在后一种情况下,重复字符串 2,依此类推。之后连接生成的字符串。

现在你只需要将散文翻译成java代码:-)

String s1, s2, s3, s4;
ArrayList<String> list = new ArrayList<>();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
int len = 0;
for(String s : list)
    len += s.length();
if(len > 75)
{
    int diff = len - 75;
    for(int i = 0; i < list.size() && diff > 0; i++) {
        String s = list.get(i);
        int len = s.length();
        if(len < diff)
            list.set(i, null);
        else {
            s = s.subString(0, s.length() - diff);
            list.set(i, s);
        }
        diff -= len;
    }
}
String result = "";
for(String s : list) {
    if(s != null) {
        // concat ..
    }
}

相关内容

  • 没有找到相关文章

最新更新