Java:将字符串的特定部分存储到数组中
我使用inputstreamer来检索连续运行的shell命令的输出以提供输出。Java:将字符串的特定部分存储到数组中
我已经设法在这里打印出来的外壳输出的一部分隔离:System.out.println(inputStr.substring(inputStr.lastIndexOf(" ")+1));
不过,我想输出存储在以下两种arrrays的,这取决于外壳输出的表达。
说,我们有如下这样的语法两个壳outpust:IP 192.168.0.12.4588 > 212.98.120.24.443 psx 4488
作为第一个,和相反:IP 212.98.120.24.443 > 192.168.0.12.4588 psx 12
从上面的打印,我可以隔离和打印都4488
以及12
。但是,如果192.168.0.x.x是第一个IP,则值4448
将存储在特定数组中。同样,如果> 192.168.0.x.x位于另一端,我想将值12
存储在另一个数组中。
我该怎么办?
你可以做这样的事情:
public static void main(String[] args)
{
String temp = "IP 212.98.120.24.443 > 192.168.0.12.4588 psx 12";
if(temp.matches(".*192\\.168\\.0\\..*>.*"))
{
System.out.println("1st");
//your code here
}
else if(temp.matches(".*>.*192\\.168\\.0\\..*"))
{
System.out.println("2nd");
//your code here
}
}
我也用'tmp .matches(“。*?192 \\。168 \\。0 \\。\\ d + \\。\\ d + \\ s *>。*?”)' - > left。和'tmp.matches(“。*?> \\ s * 192 \\。168 \\。0 \\。\\ d + \\。\\ d +。*?”)' - > right。 –
非常有帮助!如上所述,值可能会在192.168.0后发生变化,但我认为你已经解决了这个问题。给它一个镜头,欢呼 – cbll
你可以使用'regex' ... – brso05
我对正则表达式阅读起来了。你将如何使用正则表达式来区分'>'192.168.0.XX.XXX的哪一侧? xx.xxx可以在任何给定的时间改变。只有192.168.0是恒定的:) – cbll
你可以解析像(ip,left_side,right_side,psx,number)这样的对象的整个输入,然后比较你的左边是否以192.168.0开头 – Erik