繁体   English   中英

如何从Java中的字符串中分离出来?

[英]How to take parts from string in Java?

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

依此类推,但是无论该属性的长度如何,它都会给我...因为我可以用子字符串完成所有操作,但是随后将定义长度!

您可以使用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

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

  • “您的命令模式” .split(“”)给您一个字符串数组
  • java.util.Scanner使您可以取出另一个令牌,并且它具有一些方便的解析器帮助程序,如nextInt()nextFloat()
  • 命令行解析器库,如commons cli 这些是需要学习的工作,但是它们具有解决您不久将面临的其他问题的优势:)

ps通常会在互联网上找到更多帮助,您正在寻找的搜索词是“ java parsing command line arguments”,这几乎就是您想要做的事情,以防万一您不知道:)

或者尝试这个 StringTokenizer类

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM