2012-05-12 16 views
1

私はobjective-cからjavaにいくつかのコードを移動しています。プロジェクトはXML/HTMLパーサーです。客観的なcでは、scanUpToString( "mystring")を使うだけです。方法。JavaのNSScannerに最も近いもの

私はJava Scannerクラスを見ましたが、すべてをトークンに分割しました。私はそれを望んでいない。私は、部分文字列の出現までスキャンし、全体の文字列の中のスキャナの現在の位置を追跡できるようにしたいだけです。

ご協力いただきありがとうございます。具体的には

EDIT

。私はスキャナがトークン化されることを望まない。

String test = "<title balh> blah <title> blah>"; 
    Scanner feedScanner = new Scanner(test); 
    String title = "<title"; 
    String a = feedScanner.next(title); 
    String b = feedScanner.next(title); 

上記のコードでは、feedScanner.next(title)を使用します。 "<title"

実際には、デフォルトの区切り文字が空白なので、feeScanner.nextが最初に呼び出されるのは初めてですが、2回目に失敗します(私にとっては目的)。

+2

あなたは 'Scanner'はあなたがせていないかについて、より具体的なことはできますか?あなたが書いたことから、 'Scanner'でも不幸なことがあり、[' String#indexOf'](http://docs.oracle.com/javase/7/docs/api/java/lang/String .html#indexOf%28java.lang.String、%20int%29)。 – trutheality

答えて

0

これは本当にただmethodsdirectly String年代を使用して簡単です:

String test = "<title balh> blah <title> blah>"; 
String target = "<title"; 
int index = 0; 
index = test.indexOf(target, index) + target.length(); 
// Index is now 6 (the space b/w "<title" and "blah" 
index = test.indexOf(target, index) + target.length(); 
// Index is now at the ">" in "<title> blah" 

をあなたが実際にほかの文字列を歩く何をしたいのかに応じて、異なるアプローチがさらに悪化/良いかもしれません。例えば。あなたは<title年代の間blah> blah文字列を取得したい場合は、Scanner便利です:

String test = "<title balh> blah <title> blah>"; 
Scanner scan = new Scanner(test); 
scan.useDelimiter("<title"); 
String stuff = scan.next(); // gets " blah> blah "; 
0

多分String.splitはあなたのためのものですか?

s = "The almighty String is mystring is your String is our mystring-object - isn't it?"; 
parts = s.split ("mystring"); 

結果:

Array("The almighty String is ", " is your String is our ", -object - isn't it?) 

あなたはあなたの "のMyString" の間になければならないことを知っています。私は開始と終了のために確信していないので、おそらくいくつかs.startsWith ("mystring")/s.endsWithが必要です。

1

これはStringクラス(Java.lang.String)で実現できます。

  1. 最初に部分文字列の最初のインデックスを取得します。

    int first_occurence = string.indexOf(部分文字列);

  2. 次に、文字列全体を反復し、サブストリング

    INT next_index =のindexOf(STR、fromIndexの)の次の値を取得します。

  3. 値を保存する場合は、値をラッパークラスに追加し、arraylistオブジェクトに追加します。
関連する問題