gpt4 book ai didi

java - 固定字符串长度添加空格和删除超出的字符

转载 作者:行者123 更新时间:2023-12-02 11:47:33 38 4
gpt4 key购买 nike

上下文:

我希望有一个固定的字符串长度,因为我正在格式化输出文件,我构建了 2 个函数,它们应该根据我的字符串长度应用于字符串。

  1. 第一个函数:如果您想要一个 X 字符长的字符串,但您得到的字符串是 X-Y,这会添加空格,直到达到所需的长度,在这种特殊情况下为 Y。这似乎是正确的,它有效
  public String formatSpace(String s, int desiredlength){
while (s.length()<desiredlength){
s+=" ";
}
return s;
}
  • 第二个函数:如果您想要一个 X 字符长的字符串,但您得到的字符串是 X+Y,则此“删除”字符直到达到所需的长度,在本例中为 Y。好像是错的。
  •   public String truncString(String s, int desiredlength){
    return s.substr(0,s.length()-desiredlenght);
    }
    <小时/>

    错误:

    我根据在代码的另一部分中测试的字符串长度应用这两个:

    [...]//here i built my class
    int maxlen = 60;
    [...] //here there is more code but it just collects data and I already tested fields
    if (field.length()<maxlen){
    field = formatSpace(field,maxlen);
    }else if (field.length()>maxlen){
    field = truncString(field,maxlen);
    }
    [...] //here i put string on file

    我得到的错误是关于字符串索引为负数,我不知道为什么,我尝试了纸上的代码(是的,我知道它很愚蠢)但它在那里工作

    为什么第二个功能不起作用?另外,最好创建一个格式化我的字符串的函数,我应该如何制作它?

    <小时/>

    解决方案:

    感谢所有评论的人,我用我编写的这个单一函数解决了我的问题,我什至不再测试字符串,如果它们适合我的长度就可以了,否则我格式化它们:

      private String formatString(String s, int length) {
    while (s.length() < length) {
    s += " ";
    }
    return s.substring(0, length);
    }

    最佳答案

    substring 中的第二个参数函数是新字符串的长度。为什么你有减法?这应该有效:

     public String truncString(String s, int desiredlength){
    return s.substr(0,desiredlenght);
    }

    关于java - 固定字符串长度添加空格和删除超出的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48098059/

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