如何从Java中的字符串中取出部分?

时间:2013-06-20 12:16:58

标签: java string attributes

我有一个像控制台这样的小程序,它允许通过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";

等等,但是无论长度属性如何都会给我...因为我可以用子串完成所有事情,但是它会定义长度!

3 个答案:

答案 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)

这里有一些选项,从简单/烦人到强大/难以学习

  • “你的命令模式”.split(“”)为你提供了一个字符串数组
  • java.util.Scanner可让您一个接一个地取出一个令牌,它有一些方便的帮助程序可用于解析nextInt()nextFloat()
  • 命令行解析器库,如commons cli。这些是一些需要学习的工作,但他们有解决你将要面临的其他一些问题的好处:)

P.S。通常在互联网上找到更多的帮助,你正在寻找的搜索词是“java解析命令行参数”,这就是你想要做的,如果你不知道的话:)

答案 2 :(得分:0)

或尝试this StringTokenizer类

 StringTokenizer st = new StringTokenizer("this is a test");
     while (st.hasMoreTokens()) {
         System.out.println(st.nextToken());
     }