Java 删除结尾处的空白
我必须编写一个Java方法,以字符串形式返回以下内容: 例如:埃文斯(5);方法“0 2 4”返回的字符串 例如:埃文斯(8);方法“0 2 4 6 8”返回的字符串 例如:埃文斯(-5);方法返回的字符串:“无” 示例:evens(0);方法“0”返回的字符串 我遇到的问题是代码末尾的空白问题。如果我的代码打印evens(5),我的方法返回的字符串将是“024”,但我需要它看起来像上面的示例。我的代码如下所示:Java 删除结尾处的空白,java,whitespace,removing-whitespace,Java,Whitespace,Removing Whitespace,我必须编写一个Java方法,以字符串形式返回以下内容: 例如:埃文斯(5);方法“0 2 4”返回的字符串 例如:埃文斯(8);方法“0 2 4 6 8”返回的字符串 例如:埃文斯(-5);方法返回的字符串:“无” 示例:evens(0);方法“0”返回的字符串 我遇到的问题是代码末尾的空白问题。如果我的代码打印evens(5),我的方法返回的字符串将是“024”,但我需要它看起来像上面的示例。我的代码如下所示: public class Evens { public static St
public class Evens {
public static String evens(int a) {
if (a < 0) {
return "NONE";
}
String num = "";
for (int i = 0; i <= a; i += 2) {
num += i + " ";
}
return num;
}
}
public class Evens{
公共静态字符串evens(int a){
if(a<0){
返回“无”;
}
字符串num=“”;
对于(int i=0;i不确定您使用的是什么语言。看起来像Java(c#?)。字符串类通常有一个trim()
或strip()
方法,该方法将删除前导空格和尾随空格
如果使用C,请考虑使用<代码> String .Cub()/<代码>和<代码>枚举.Range.()
若要删除尾随空格,您需要在num
的最终值上调用该方法。如果出现问题,可能是因为您一直在进行修剪,因此在这两个值之间失去了空格。这就是您应该更改return语句的原因
return num.stripTrailing();
String类中有几个方法可以处理标准的trim类型功能
或者,您可能希望收集一个数组中的所有偶数,然后使用它们来构建返回的最终字符串。比去掉最后的空格更优雅的做法是不首先添加它。只需检查您是否在循环的最后一次迭代中,如果是,则不添加分隔符
for (int i = 0; i <= a; i += 2)
{
if(i < a - 1)
num += i + " ";
else
num += i;
}
请注意,我们必须在for
语句外部声明循环变量i
,以使其可见
最后,你可以考虑使用<代码> StringBuffer < /C> >
你不必在偶数之后追加一个空间,你可以在它们之前放置一个空格,这样你就不必担心尾随空格了。for
没有执行,它将返回0for循环
逻辑
public static String even(int amount) {
String output = "0";
if(amount < 0) {
return "NONE";
}
else if(amount == 0) {
return output;
}
for(int i=2; i<=amount; i += 2) {
output += " " + i;
}
return output;
}
public static void main(String[] args) {
System.out.println(even(5));
System.out.println(even(8));
System.out.println(even(-5));
System.out.println(even(0));
}
公共静态字符串偶数(整数金额){
字符串输出=“0”;
如果(金额<0){
返回“无”;
}
否则,如果(金额==0){
返回输出;
}
对于(inti=2;i您可以使用String.join来获得所需的序列
private static void findEvenSequences(int max) {
String exp = new String();
if (max < 0) {
exp = "NONE";
} else {
for (int i = 0; i < max; i = i + 2) {
exp = String.join(" ", exp, String.valueOf(i));
}
}
System.out.println(exp.trim());
}
私有静态void findevensequence(int max){
String exp=新字符串();
如果(最大值<0){
exp=“无”;
}否则{
对于(int i=0;i
很抱歉没有指定,但我使用的是java,但是如果我使用trim(),它会去掉数字之间的空格。@MaggiString.trim()
将只删除前导和尾随空格。如果您遇到这种情况,请在您的问题和所有代码中添加一些输出日志。我如何做到这一点?很抱歉,我对编码不熟悉,不知道还能做什么?
private static void findEvenSequences(int max) {
String exp = new String();
if (max < 0) {
exp = "NONE";
} else {
for (int i = 0; i < max; i = i + 2) {
exp = String.join(" ", exp, String.valueOf(i));
}
}
System.out.println(exp.trim());
}