2012-10-17 14 views
-4

我有字符串像",yes,,,,,,,,,,,,,"其中說option2是從15個選項中選出的。這裏,一個逗號,代表一個選項;如果它被選中,則會有一些數據代替選項。我需要閱讀這個字符串,並得到確切的選項選擇值。在上面它應該是option2。我該怎麼做?閱讀與多個選項的字符串

我有15個選項在數據庫中從這裏選擇的數據被替換,,沒有選擇。

或者,換個角度看,有15個字段用逗號分隔。一個字段 - 在這個例子中,第二個字段 - 具有非空值;其他人都是空的。我如何確定第一個非空的字段?

+0

我不明白是什麼這是你問。 –

+0

你有一個字符串或一個jdbc結果集? – dngfng

+0

你能提供一些更多的上下文,也許是一個小例子嗎?該字符串從哪裏來?你會怎麼處理這些選項? – Thomas

回答

0

如果您的String總是遵循您指定的格式,則可以使用String.split()。例如,

String[] split = ",yes,,,,,,,,,,,,,".split(","); 
System.out.format("The chosen data is in Option %d and is '%s'%n", split.length, split[split.length - 1]); 

打印

The chosen data is in Option 2 and is 'yes' 
0

如果我理解正確的話,你會得到逗號的字符串和兩個逗號之間不存在像「是」某些文字。您的任務是檢索該單詞的索引,即該單詞前面的逗號(加1)。

首先,對某個選項的編碼是相當愚蠢的,所以如果它存在於你的責任中,請改變它。

簡單的解決方案是計算單詞前面的逗號。

像這樣的東西會做:

String s = ",yes,,,," 
for (int i = 0 , len = s.length() ; i < len ; i++) 
    if (s.charAt(i) != ',') 
     return i+1; 
throw new Exception ("No option found"); 
0

好吧,我想你想在,分割字符串是這樣的:

String[] options = ",yes,,,,,,,,,,,,,".split(","); 
String option2 = options[1]; //yields "yes" 

但是,你爲什麼不使用一些更容易理解標記,如option2=yes等?

看看Apache Commons CLI爲某些庫支持更好的選項。