我在书中看到的每一个问题我都至少对这本书的内容有所了解,但是我不知道如何处理它。它是:
“编写一个名为 padString 的方法,它接受两个参数:一个字符串和一个表示长度的整数。例如,
padString ("hello", 8)
应该返回"hello "
(最后那里有三个空格)。如果字符串的长度已经至少与length参数一样长,那么您的方法应该返回原始字符串。例如,
padString ("congratulations", 10)
应该返回"congratualtions"
。
我不知道如何处理这个对Java来说很新的东西。这应该是初学者的功课,所以我想这个方法非常简单。如果可以,请告诉我如何执行此操作并解释步骤。请和任何有帮助的人一起感谢。
答案 0 :(得分:4)
所以你的功能应该是这样的:
确定所需的填充字符数。
需要< = 0填充字符?返回输入字符串
否则,创建一个包含所需填充字符的字符串,然后返回输入字符串+所需的填充字符
您可以使用.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我无法编辑您的评论或在您的评论下面添加评论。