-4

",yes,,,,,,,,,,,,,"option2 が 15 のオプションから選択されているというような文字列があります。ここで、カンマ,はオプションを表します。それが選択されている場合、オプションの代わりにいくつかのデータが表示されます。この文字列を読み取って、選択したオプションの正確な値を取得する必要があります。上記では、option2 である必要があります。どうすればいいですか?

データベースには 15 のオプションがあり、そこから選択したデータがここで置き換えられ、,何も選択されていません。

または、別の見方をすると、コンマで区切られた 15 のフィールドがあります。1 つのフィールド (この例では 2 番目のフィールド) には空でない値があります。他はすべて空です。空でない最初のフィールドを特定するにはどうすればよいですか?

4

4 に答える 4

0

私があなたを正しく理解していれば、コンマの文字列が得られ、2 つのコンマの間に「はい」のような単語があります。あなたの仕事は、その単語のインデックス、つまり、単語の前のコンマの数 (プラス 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");
于 2012-10-17T10:39:22.890 に答える
0

さて、次のように文字列を分割したいと思います,

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

ただし、よりわかりやすいマークアップなどを使用しないのはなぜoption2=yesですか?

より良いオプションをサポートするライブラリについては、 Apache Commons CLIを参照してください。

于 2012-10-17T10:39:39.797 に答える
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'
于 2012-10-17T10:38:36.247 に答える