[英]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.