我试图在这里不使用大量的IF语句。 我有26个不同的盒子,名为txtA,txtB,txtC等。
我尝试创建的是一种方法,其中变量" box"可以用来给出
String result = txt(box).getText();
如果任何一个字母代替方框。
谢谢,这是我的代码
public static String getTextBoxInput(char box) {
String result = txtA.getText();
return result;
}
答案 0 :(得分:0)
构建一个包含文本框的Map<String, TextBox>()
,将您的字母作为密钥并以这种方式使用:
public static String getTextBoxInput(char box) {
TextBox textBox = textBoxMap.get(box);
if (textBox != null) {
return textBoxMap.get(box).getText();
}
return null;
}
你的地图是:
"A", txtA
"B", txtB
等等。这是您最简单的选择,可以添加另一个框或快速找到它们。
答案 1 :(得分:0)
这里可以使用数组。我希望这会有所帮助。
import java.util.*;
public class Task {
static BOX Box[] = new BOX[26];
static Scanner in = new Scanner(System.in);
/*assuming that the variable box can only get input as an English uppercase
alphabet and characters stored in box can range from A to Z.
*/
public static String getTextBoxInput(char box) {
String result = Box[box - 65].getText(); //ASCII value of 'A' is 65
return result;
}
public static void main(String[] args) {
//initializing the elements of BOX with their respective Strings
for(int i = 0; i < 26 ; i++)
Box[i] = new BOX( "Sample_String "+(i+1) );
char box = in.next().charAt(0);
String result = getTextBoxInput(box);
System.out.print("RESULT : "+result);
}
}
class BOX {
String text;
public BOX(String text) {
this.text = text;
}
public String getText() {
return text;
}
}