我有一个像控制台这样的小程序,它允许通过JTextField输入命令。
我写了很多命令,输入转换为字符串>如果一个命令有ping一个IP属性(ping 192.168.1.1)我子串5(ping),但现在我想要几个属性,如(命令atr1 art22 atr333 art4444),我会得到
String command = "command"; //I can make this one
String attribute1 = "atr1"; //I can make this one
String attribute2 = "atr22";
String attribute3 = "atr333";
等等,但是无论长度属性如何都会给我...因为我可以用子串完成所有事情,但是它会定义长度!
答案 0 :(得分:5)
您可以使用String.split
:
String cmd = "command atr1 art22 atr333 art4444";
String[] parts = cmd.split(" ");
split方法允许使用正则表达式。例如,如果空白量变化,这很有用:
String cmd = "command atr1 art22 atr333 art4444";
String[] parts = cmd.split(" +"); // split by spans of one or more spaces
答案 1 :(得分:1)
这里有一些选项,从简单/烦人到强大/难以学习
java.util.Scanner
可让您一个接一个地取出一个令牌,它有一些方便的帮助程序可用于解析nextInt()
或nextFloat()
P.S。通常在互联网上找到更多的帮助,你正在寻找的搜索词是“java解析命令行参数”,这就是你想要做的,如果你不知道的话:)
答案 2 :(得分:0)
或尝试this StringTokenizer类
StringTokenizer st = new StringTokenizer("this is a test"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }