我正在尝试拆分现在存储在String [] args
中的字符串数组(从控制台获取的输入) host 9 7 1 router 5 8 11 lan 1 5 2 9
现在args接收值并将它们存储为
args[0] = "host",
args[1] = "9",
args[2] = "7"
等等。
字符串“host”,“router”和“lan”之后的值是动态生成的,即值的值不能改变
例如,另一个实例可以是
host 0 4 3 9 router 4 9 2 lan 1 3 4 7
对于上面提到的例子,我想创建一个
String[] hosts
将存储0,4,3,9
存储String[] routers
的{{1}}
4,9,2
将存储String[] lans
我该怎么做?
答案 0 :(得分:1)
public static void main(String[] args) {
String in = "host 0 4 3 9 router 4 9 2 lan 1 3 4 7";
List<String> storage = Arrays.asList(in.split(" "));
boolean isHost = false;
boolean isRouter = false;
boolean isLan = false;
List<String> hostList = new ArrayList<String>();
List<String> routerList = new ArrayList<String>();
List<String> lanList = new ArrayList<String>();
for(String val : storage){
if("host".equals(val)){
isHost = true;
continue;
}
else if("router".equals(val)){
isRouter = true;
isHost = false;
continue;
}
else if("lan".equals(val)){
isHost = false;
isRouter = false;
isLan = true;
continue;
}
if(isHost){
hostList.add(val);
}
else if(isRouter){
routerList.add(val);
}
else if(isLan){
lanList.add(val);
}
}
System.out.print("Host: "); System.out.println(hostList);
System.out.print("Router: "); System.out.println(routerList);
System.out.print("Lan: "); System.out.println(lanList);
}
输出:
Host: [9, 7, 1]
Router: [5, 8, 11]
Lan: [1, 5, 2, 9]