我的情况:我有一个字符串(称为str)。弦的长度必须是30的倍数(例如30,60,90)。如果str的长度不是30的倍数,则在其末尾添加空格“”。
这样的事情:
if (str.length() / 30 != ????) {
//add spaces to the end
}
当然,上面的代码不正确。如果你能帮助我,我将非常感激。
提前致谢!
答案 0 :(得分:1)
此代码未经过测试,但我猜它会起作用:
int a = str.length()%30;
for(int i=0; i<=a; i++)
str = str + " ";
答案 1 :(得分:1)
你可以很简单地做到:
if(str.length()%30!=0)
str = String.format("%1$-"+(((str.length()/30)*30)+30)+"s", str);
str.length()%30
给出余数除以30的长度。如果它不是0,则必须添加空格。
String.format("%1$-"+(((str.length()/30)*30)+30)+"s", str)
将空格添加到字符串的右侧。
或者甚至简单地说,你可以这样做:
while(str.length()%30 !=0)
str+= ' ';
答案 2 :(得分:1)
如果简单Maths
中的数字是30的倍数,您会怎么做?
是的,你会分开并检查余数是否为0,对吗?
你是如何在Java
中完成的。要在Java
中获取余数,请使用Modulus(%)
运算符。所以,你可以这样做:
if (str.length() % 30 != 0) {
//add spaces to the end
str += " ";
}
或者如果要添加空格以使长度为30的倍数,请执行以下操作:
int remainder = str.length() % 30;
if (remainder != 0) {
//add spaces to the end
int numSpacesRequired = 30-remainder; //no. of spaces reuired to make the length a multiple of 30
for(int i = 0; i < numSpacesRequired; i++)
str += " ";
}
详细了解Java
here中的基本操作符。
答案 3 :(得分:0)
您可以使用Modulo
来实现这一目标:
if (str.length() % 30 != 0) {
//add spaces to the end
str += ' ';
}
答案 4 :(得分:0)
简单地说:(经过测试和工作)
public static void main(String[] args) {
String str = "AYOA"; //Length is only 4
//If the remainder of the str's length is not 0 (Not a multiple)
if (str.length() % 30 != 0){
str += ' ';
}
System.out.println("[" + str + "]"); //A space is added at the back
}
如果要连续添加空格,直到长度为30的倍数:
public static void main(String[] args) {
String str = "AYOA"; //Length is only 4
//If the remainder of the str's length is not 0 (Not a multiple)
//Repeat until is multiple of 30
while(str.length % 30 != 0){
str += ' ';
}
System.out.println("[" + str + "]"); //A space is added at the back
}
答案 5 :(得分:0)
使用 StringBuilder 来构建空格
String str="multiple of 30";
int spacesNum=str.length()%30; //get the remainder
StringBuilder spaces=new StringBuilder(); //build white spaces
for(int j=0;j<spacesNum;j++){
spaces.append(' ');
}
System.out.println(str+spaces.toString());