如何在Java中处理padString函数?

时间:2010-10-18 03:30:06

标签: java

我在书中看到的每一个问题我都至少对这本书的内容有所了解,但是我不知道如何处理它。它是:

“编写一个名为 padString 的方法,它接受两个参数:一个字符串和一个表示长度的整数。例如,

padString ("hello", 8)

应该返回"hello "(最后那里有三个空格)。如果字符串的长度已经至少与length参数一样长,那么您的方法应该返回原始字符串。例如,

padString ("congratulations", 10)

应该返回"congratualtions"

我不知道如何处理这个对Java来说很新的东西。这应该是初学者的功课,所以我想这个方法非常简单。如果可以,请告诉我如何执行此操作并解释步骤。请和任何有帮助的人一起感谢。

8 个答案:

答案 0 :(得分:4)

所以你的功能应该是这样的:

  1. 确定所需的填充字符数。

  2. 需要< = 0填充字符?返回输入字符串

  3. 否则,创建一个包含所需填充字符的字符串,然后返回输入字符串+所需的填充字符

  4. 您可以使用.length()方法找到字符串的长度。

答案 1 :(得分:1)

您可以在printf中使用System.out方法(需要Java 1.6或更高版本,这是一种新的PrintStream方法)。看看下面一个有趣的例子,输出是(在代码下面指定)。填充在printf参数中指定为30,并且左对齐:

package pft;

public class PrintfTest {
 public static void main(String[] args) {
        int padding = 30;
     String s = "hi!";
     System.out.printf("'%0$-" + padding + "s'", s);
 }
}

prints: 'hi!                           '.

答案 2 :(得分:1)

一次拍摄(并且没有提供所有代码):

  

“编写一个名为padString的方法   接受两个参数:String和   表示长度的整数。“

public static ??? padString(String str, int len)
  

“例如,padString(”hello“,8)   应该回“你好”。“

public static String padString(String str, int len)
{
    throw new Error("not implemented yet");
}
  

“如果字符串的长度已经是   至少与长度参数一样长,   你的方法应该返回原文   串。例如,   padString(“祝贺”,10)   应该返回“祝贺”。“

编辑:你修正了问题......

public static String padString(String str, int len)
{
    // if the str.length is greater than len
    //     return str

    // this next part is very simple, not a very good way but gets you 
    // started. Once you have it working look at StringBuilder and .append.

    // int val = the difference in length between the two strings

    // for i = 0; i is less than val; i++
    //     str += " ";           

    // return str
}

答案 3 :(得分:1)

public class PadString {
    public static void main(String[] args) {
        String str = "hello";
        str = padStr(str, 10, ' ');
    }

    static String padStr(String s, int len, char c) {

        int n = len - s.length();
        if (n <= 0)
            return s;
        StringBuilder b = new StringBuilder(s);
        for (int i = 0; i < n; i++)
            b.append(c);
        return b.toString();

    }
}

答案 4 :(得分:1)

甚至认为这篇文章大约2岁。我刚刚有这个  做作业的问题。我认为这可能对其他初学者有所帮助  可能会遇到这个问题,看到一种更简单的解决方法 这个问题。

一个可能更符合他们所处位置的人  初学者java课程假设他们正在这样做  我做的时间。

当然你应该删除循环中的破折号并使用空格  得到分配的功劳,就是告诉你它  的工作原理。

public class ex3_11_padString {
          public static void main(String[] args) {

             padString("hello",10);
          }

          public static String padString( String s, int len) {

             int s_length = s.length();
             int diff = len - s_length;
             String newString;

             newString = "";

             for (int x = 0 ; x < diff; x++) {
                newString += "-";
             }

             newString = newString + s;


             return new String;
             }
       }

答案 5 :(得分:0)

您可能需要查看Java的String类文档。寻找一个返回字符串长度的方法......

答案 6 :(得分:0)

public static String padString(String str, int len) 
{ 

int lengt=str.length();
if(lengt==len||lengt>len)
 return str;
else if(lengt<len){
 String spacstr="";
 for(var i=lengt;i<len;i++){
    spacstr+="$";
 }
 return str+spacstr;
}

} 

///more generalized  by accepting pad character



public static String padString(String str, int len,String padChar) 
{ 

int lengt=str.length();
if(lengt==len||lengt>len)
 return str;
else if(lengt<len){
 String spacstr="";
 for(var i=lengt;i<len;i++){
    spacstr+=padChar;
 }
 return str+spacstr;
}

} 

答案 7 :(得分:0)

public String padString (String s, int padding) {

   return String.format("%-" + padding + "s", s);

} 

这对我来说是更好的解决方案。取自@John C的评论,加上“% - ”。

抱歉@John C我无法编辑您的评论或在您的评论下面添加评论。