我在学校里有此作业,需要分开数字和字母并将它们分开打印。我的问题是我只能返回一个值,而不是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;
}
答案 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)
您可以使用两个单独的列表,一个用于数字,另一个用于字母。