2

请我需要这种方法的帮助:

String d = ret.getData(); //I get the string using this
int ui;
ui = d.indexOf("=", d.indexOf("=")+1);
do{
int f=d.indexOf("=", ui+1 );
System.out.println(d.substring(ui+1, f-1));//Here I'm showing the results of my code
ui = ui + d.indexOf("=", ui);}
while ((d.indexOf("=") + ui)!= 0);

我拥有的字符串是这个:

!re
=.id=*1
=name=ether1
=mtu=1500
=l2mtu=1600
=mac-address=D4:CA:6D:37:44:26
=arp=enabled
=auto-negotiation=true
=full-duplex=true
=speed=100Mbps
=running=true
=slave=false
=disabled=false

我的代码的结果是:

*1
ether1
l2mt
24:22
nin

我想要得到的是:

*1
ether1
1500
1600
D4:CA:6D:37:44:26
enabled
true
true
100Mbps
true
false
false

我需要得到“=”之后的所有内容

请帮忙!谢谢

4

5 回答 5

0

也许您可以使用Scanner,以“=”作为分隔符。只需运行scanner.next() 并读取每个令牌:)

于 2013-02-26T17:27:14.057 回答
0

您可以使用d.split("=")方法并获取结果数组的最新值

于 2013-02-26T17:30:07.193 回答
0

就这样做吧。

Scanner scan = new Scanner( ret.getData() );
scan.nextLine(); //skip the first line

While (scan.hasNextLine()){
     String s = scan.nextLine();
     int index = s.lastIndexOf("=");
     System.out.println(s.substring(index+1));
}
于 2013-02-26T17:31:53.040 回答
0

尝试在 string.split 函数的帮助下拆分字符串=。它将返回字符串数组。现在在 for 循环中将其递增两次并显示输出。

于 2013-02-26T17:36:15.680 回答
0

拆分器会有所帮助,并且是最简单和正确的方法。但是,如果您想以其他方式触摸鼻子或寻找替代方法,则可以使用正则表达式/模式匹配器。:-)

public static void main(String[] args) {
    TestClass test = new TestClass();


    String d = "=mtu=1500"; //I get the string using this
    Scanner scan = new Scanner(d);
    System.out.println(scan.nextLine().split("=")[2]);


}

这将打印 - 1500

于 2013-02-26T17:36:20.803 回答