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

时间:2019-04-04 13:58:40

标签: java

我在学校里有此作业,需要分开数字和字母并将它们分开打印。我的问题是我只能返回一个值,而不是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;
}

4 个答案:

答案 0 :(得分:10)

您可以执行以下操作:

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

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

  

...我需要将数字和字母分开并将它们分开打印。

您是否真的需要一个返回某些东西的静态方法?

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);
    }

}

答案 3 :(得分:-2)

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

相关问题