繁体   English   中英

需要使用 if/else 语句在 For 循环中返回两个值

[英]Need to return two values in a For loop with if/else statement

我在我的学校有这个作业,我需要将数字和字母分开并将它们分开打印。 我的问题是我只能返回一个值,它是数字而不是 if/else 语句中的字母,我需要返回两个值,以便我可以分别打印数字和字母。

关于我如何只用一种方法做到这一点的任何建议?

public static String Separation(String output) {
    String number = "";
    String letter = "";
    for (int i = 0; i < output.length(); i++) {
        char x = output.charAt(i);
        if (Character.isDigit(x)) {
            number += x;
        } else {
            letter += x;
        }
    }
    return number;
}

您可以执行以下操作:

  • 返回一个字符串数组: return new String[] { number, letter };
  • 或返回字符串列表: return Arrays.asList(number, letter)

或者,更多的 OOP:您创建一个包含两个字符串的小类,例如:

class Entry {
  String number;
  String letter;
...

然后返回该类的一个实例。 当然,您必须相应地调整方法的签名,以使用所需的返回类型而不是public String ...

public class Result {
   private String number;
   private String letter;

   public Result(String number, String letter) {
      this.number = number;
      this.letter = letter;
   }

   public void setNumber(String number) {
      this.number = number;
   }

   public void setLetter(String letter) {
      this.letter = letter;
   }

   public String getNumber() {
      return number;
   }

   public String getLetter() {
      return letter;
   }
}

然后

public static Result Separation(String output) {
   String number = "";
'  String letter = "";
   for (int i = 0; i < output.length(); i++) {
       char x = output.charAt(i);
       if (Character.isDigit(x)) {
           number += x;
       } else {
           letter += x;
       }
   }
   return new Result(number, letter);
}

编辑:从 c# 更改为 java

......我需要将数字和字母分开并打印出来。

你真的需要一个返回一些东西的静态方法吗?

public class WTF {

    String number;
    String letter;

    public void separation(String output) {
        number = "";
        letter = "";
        for (int i = 0; i < output.length(); i++) {
            char x = output.charAt(i);
            if (Character.isDigit(x)) {
                number += x;
            } else {
                letter += x;
            }
        }
    }

    public static void main(String args[]) {
        WTF wtf = new WTF();
        wtf.separation("2 to 5 the jury decides");
        System.out.println(wtf.number + " " + wtf.letter);
    }

}

您可以使用两个单独的列表,一个用于数字,另一个用于字母。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM