Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除结尾处的空白_Java_Whitespace_Removing Whitespace - Fatal编程技术网

Java 删除结尾处的空白

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

我必须编写一个Java方法,以字符串形式返回以下内容:

例如:埃文斯(5);方法“0 2 4”返回的字符串

例如:埃文斯(8);方法“0 2 4 6 8”返回的字符串

例如:埃文斯(-5);方法返回的字符串:“无”

示例:evens(0);方法“0”返回的字符串

我遇到的问题是代码末尾的空白问题。如果我的代码打印evens(5),我的方法返回的字符串将是“024”,但我需要它看起来像上面的示例。我的代码如下所示:

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> >

你不必在偶数之后追加一个空间,你可以在它们之前放置一个空格,这样你就不必担心尾随空格了。
  • 首先是将默认答案设置为0,这样,如果循环
    for
    没有执行,它将返回0
  • 若方法参数的值小于0,只需返回NONE
  • 如果两个都没有执行,这意味着您有一个有效的范围,那么这是一个基本的
    for循环
    逻辑

    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(),它会去掉数字之间的空格。@Maggi
    String.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());
    
    }