ン年前。
当時の製作者によって書かれたややこいソースをとうとう相手にすることに。
そのまま解読変換しててもなんだかもやもやした気持ちは収まらないので、
ネタにしてくれる。(゜Д゜)クワッ!!


まず最初のソース。

strHoge = ( (String)vecHogehoge.elementAt(intCounter)).substring( ( (String)vecHogehoge.elementAt(intCounter)).indexOf(':') + 1);

むきーヽ(`Д´)ノ


え〜っと。
せめてこうなりませんか。

strBuff = (String)vecHogehoge.elementAt( intCounter );
strHoge = strBuff.substring( strBuff.indexOf( ':' ) + 1 );


単品でみてもさることながら、元のソースはこんな感じです。

strHoge01 = strHoge02 = (String)vecHogehoge.elementAt(intCounter);
strHoge02 = strHoge02.substring(strHoge02.lastIndexOf('(') + 1, strHoge02.length() - 1);
strHoge01 = strHoge01.substring(0, strHoge01.indexOf(':'));
strHoge03 = ( (String)vecHogehoge.elementAt(intCounter)).substring( ( (String)vecHogehoge.elementAt(intCounter)).indexOf(':') + 1)

むきーヽ(`Д´)ノ


見にくいったらありゃしません。



ゆえにこんなソースがでてくるのです。

strHoge01 = strHogeMoto[intI].substring(0, (intIndex = strHogeMoto[intI].indexOf(':')));
strHoge02 = strHogeMoto[intI].substring(intIndex + 1, (intIndex = strHogeMoto[intI].indexOf(':', intIndex + 1)));
strHoge03 = strHogeMoto[intI].substring(intIndex + 1, (intIndex = strHogeMoto[intI].indexOf(':', intIndex + 1)));
strHoge04 = strHogeMoto[intI].substring(intIndex + 1);

(;´Д`)はぁ。


多少長くなるけれどもこんなんにしませんか。

String strBase = strHogeMoto[intI];

// なんたら
intIndex = strBase.indexOf( ':' );
strHoge01 = strBase.substring( 0, intIndex );

// かんたら
intNext = intIndex + 1;
intIndex = strBase.indexOf( ':', intNext );
strHoge02 = strBase.substring( intNext, intIndex );

// なんちゃら
intNext = intIndex + 1;
intIndex = strBase.indexOf( ':', intNext );
strHoge03 = strBase.substring( intNext, intIndex );

// かんちゃら
intNext = intIndex + 1;
strHoge04 = strBase.substring( intNext );

っつか、なんで編集ルールのよくわからん文字列に対して
決めうちで分解してるんだヽ(`Д´)ノ
しかもその編集してるの別のクラスじゃねーかヽ(`Д´)ノ むきー


文字列の。
要件に応じた編集と分解を行う必要があるのならば、
それは編集用のクラスにまとめなはれと小一時間(ry


単純に分解するだけならこーかいてあるほうが見やすいです。

MyHogeHage cls = new MyHogeHage();
cls.setInit( strHogeMoto[intI] );  // 分解っ

// なんたら〜かんたら
strHoge01 = cls.getNantara();
strHoge02 = cls.getKantara();
strHoge03 = cls.getNanchara();
strHoge04 = cls.getKanchara();


個人的にはこんなんもやです。

if( ( (String)vecHogehoge.elementAt(1)).equals("00") || //なんたら
  ( (String)vecHogehoge.elementAt(1)).equals("01")) { //かんたら

むきーヽ(`Д´)ノ
もーあんなんばっかだしなんでも
むきーヽ(`Д´)ノ
ってかそんなえーかげんにかいてるから
NullPointerExceptionでまくるんだー
むききーヽ(`Д´)ノ


ぬるぽの可能性は露ほども残さず死滅させましょう。

strBuff = (String)vecHogehoge.elementAt( 1 ); // こいつ
if( "00".equals( strBuff ) || // なんたら
  "01".equals( strBuff ) ){ // かんたら


さて。
処理の内容は把握したし、メモ書きもしたし。あしたにするか(´ヘ`;)