当前位置: 首页 > 知识库问答 >
问题:

计算字符串的长度并“填充”它

闾丘康安
2023-03-14

我正在做一个赋值,它需要一个以字符串和int为参数的方法。该方法应该用空格填充参数字符串,直到它的长度是给定的长度。例如,padString(“你好”,8应该返回“hello___”(_代表三个空格))如果int高于字符串的长度,那么它将简单地返回字符串。我很难关闭程序的“填充”部分。

由于这个任务是本书的早期内容,我假设它可以用初学者的东西来完成,例如forloops、参数和常见的字符串方法,因为我还不应该使用if/ess语句。

以下是我目前拥有的明显有缺陷的代码:

public class Exercise11 {

public static final String word = "congratulations";
public static final int length = 10;

public static void main(String[] args) {
    padString();

}

public static String padString(String word, int length) {
    if (word.length() >= length) {
        return word.substring(0,length + 1);
    } else {
        String thing = word;
        return word + addSpaces(word, length);
    }

}

public static void addSpaces(String word, int length) {
    for (int i = 1; i <= length-word.length(); i++) {
            return (" ");
        }
}

}

顺便问一下,有没有办法通过for循环将空格之类的东西添加到String变量中?感谢您的帮助。

共有3个答案

云瑞
2023-03-14

您的添加空格没有返回任何内容。这是无效的。内部逻辑也不能满足您的需求。

您的addSpaces方法应该是

public static String addSpaces(String word, int length) {
     String spaces="";
    for (int i = 1; i <= length-word.length(); i++) {
           spaces +=  " ";
        }
     return  spaces;
} 

并且更喜欢使用StringBuilder来追加而不是String以获得更好的性能。

使用StringBuilder

 public static String addSpaces(String word, int length) {
         StringBuilder spaces=new StringBuilder();
        for (int i = 1; i <= length-word.length(); i++) {
               StringBuilder.append(" ");
            }
         return  spaces.toString();
    } 

然后返回单词addSpaces(单词,长度) 工作正常。假设我没有错过任何其他内容:)。

南宫森
2023-03-14

直接的问题是,无论需要向其中添加多少空间,您在addSpaces中的for循环都会立即返回单个空间。更好的方法是,使用addSpaces返回字符串,并向内部字符串变量添加空格,直到其长度正确为止,然后返回该变量

此外,在Java中,通常从零开始循环,除非有特别强烈的理由从其他地方开始。在您的情况下,word。length()可能是一个很好的起点,但1不是。

周祺
2023-03-14

这是一个合理的开始...

需要两个参数,一个是字符串,另一个是int,因此。。。

public static void main(String[] args) {
    padString();
}

可以改成...

public static void main(String[] args) {
    padString(word, length);
}

下一个问题是在您的addSpace方法中。循环中的返回语句意味着循环只会执行一次,并且只会返回一个空格字符。

相反,您需要将每个循环上的空间连接到一个临时String,例如,您将传回它...

public static String addSpaces(String word, int length) {
    StringBuilder sb = new StringBuilder(length);
    for (int i = 0; i < length - word.length(); i++) {
        sb.append(" ");
    }
    return sb.toString();
}

所以,如果我跑。。。

System.out.println("[" + padString("hello", length) + "]");

我明白了

[hello     ]
 类似资料:
  • 假设我有一个整数数组,如和一个简单的字符串,如。我如何循环通过数组和填充每一个值。假设是这样的: 输出: 到目前为止,我已经尝试了以下内容: 但是,它在print语句中给出了。解决这个问题最好的方法是什么?

  • 问题内容: 我需要产生固定长度的字符串以生成基于字符位置的文件。缺少的字符必须用空格字符填充。 例如,字段CITY具有15个字符的固定长度。对于输入“芝加哥”和“里约热内卢”,输出为 。 问题答案: 从Java 1.5开始,我们可以使用方法java.lang.String.format(String,Object …) 并使用类似于printf的格式。 格式字符串可以完成这项工作。其中表示参数索引

  • 我需要产生固定长度的字符串来生成一个基于字符位置的文件。缺少的字符必须用空格字符填充。 例如,字段CITY具有15个字符的固定长度。对于输入“芝加哥”和“里约热内卢”,输出为

  • 我想将字符串拆分为固定长度,例如,拆分20个字符,如果拆分后长度小于20个字符,则用最多20个字符的空格填充字符串。 我使用上面的代码按相等大小进行拆分。

  • 我正在为我的客户开发一个同时使用英语和泰米尔语的网站。 我需要找到泰米尔字符串的长度来生成剥离的内容。 有人能告诉我如何找到泰米尔语字符串的长度和泰米尔语的substr函数吗。

  • rank ▲ ✰ vote url 77 340 83 533 url 给字符串填充0 有什么方法可以给字符串左边填充0,这样就可以有一个特定长度. 字符串: >>> n = '4' >>> print n.zfill(3) >>> '004' 对于数字: >>> n = 4 >>> print '%03d' % n >>> 004 >>> print format(4, '03') # pyt