2010-02-01 228 views
0

如何显示此字符?子?分割? ...在字符串中查找字符串

但它也许是动态的!

String str = "SET ENCALSUP=NOENCR&GSMV2,MAXNCELL=16,TDTMWIND=5,MAXLAPDMN=5,EENHDTMSUP=DISABLED,T3197=4,PAGCOORCLB=DISABLED,DGRSTRGYBCNT=DISABLED,PAGQOVLIND=0;"; 

这个输出(EENHDTMSUP =已禁用):

只是这

DISABLED 

谢谢...

+0

我有点困惑。你想显示每个键 - >值对吗? –

+12

您尚未指定应该选择子字符串的条件。目前,您的问题的答案是'System.out.println(“EENHDTMSUP = DISABLED”)'。 – Jherico

+0

http://java.sun.com/docs/books/tutorial/essential/regex/ – hakre

回答

4

你的问题不是很清楚。你只需要知道“EENHDMSUP”的价值?

如果是这样,是这样的:

int start = myString.indexOf("EENHDTMSUP="); 
String substr = myString.subString(start,myString.indexOf(',',start); 
System.out.println(substr); 

可能会工作。

+0

谢谢亲爱的乍得:-) – Freeman

+0

亲爱的乍得我怎么能出口只是价值例如在这种情况下只是它:“禁用” – Freeman

1

这是你在找什么?

StringTokenizer tokenizer = new StringTokenizer(str.substring(4),","); 
while(tokenizer.hasMoreTokens()){ 
    System.out.println(tokenizer.nextToken()); 
} 
+0

您的第一个tokenizer.nextToken()将显示: “SET ENCALSUP = NOENCR&GSMV2”。我想他希望删除“SET”。 –

+0

我已经将传递给标记器构造函数的字符串上的子串删除了“SET”。这不应该是一个问题。 –

+0

虽然看起来不像这是海报的要求。好吧。 –

0

不确定你的意思是“但它可能是动态的。” 但如果字符串始终遵循该格式和“EENHDTMSUP =已禁用”停留在字符串中相同的索引,那么你可以使用:

String output = str.Split(',')[4]; 
0

你为什么不尝试一下呢?

String[] strings = str.split(","); 

for (String s:strings) { 
    if (s.toLowerCase().startsWith("set ")) { 
     s = s.substring("set ".length()); 
    } 

    System.out.println(s); 
} 

当然使用正则表达式;)