2016-11-29 5 views
-4

私は文字列"domain\cdsid"を持っています。"\"は区切り文字です。文字列を分割してただプリントするだけです。"cdsid"Java文字列トークナイザデリミタ

入力文字列:"domain\cdsid"

出力文字列:"cdsid"

私はこれをどのように行うのですか?

+0

あなたは試しましたか?区切り文字で文字列を分割し、結果の配列にアクセスしてください – Li357

答えて

2

splitを使用して)、これを試してみてください:

String myText = "domain\\cdsid"; 
System.out.println(myText.split("\\\\")[1]); 

出力:

cdsid 
+0

これはうまく見えますが、ここに表示されています。 "(" \\ ");" "(" LoginName ")、getNodeValue() Iamはsharepointからデータを抽出し、その "domain \ cdsid"という形式を持つ "LoginName"をあらかじめ定義しています。 –

+0

文字列の中に '' \ ''を置くことはできません。したがって、メソッドが文字列 '" domain \ cdsid "'を返す場合でも、実際には ""ドメイン\\ cdsid "'です。対応する分割。 – Jarvis

+0

ありがとうございます –

-1

を分割は、私はあなたが操作の結果のすべての要素を必要なときに行くことをお勧めします方法です。 ..これは、結果が配列の文字列を生成するためです(配列を生成するメモリを浪費して1つの要素しか得ることはできません):

はあなたのケースで正規表現か、単にストリングのようなものが優しくあなたに正しい答えを提供します。..

は考慮してください。

String txt = "domain\\cdsid"; 
System.out.println(txt.substring(txt.indexOf("\\") + 1)); 

出力:

をcdsid
0

Java Stringオブジェクトでは、 "\"は、改行の場合は\ n、タブの場合は\ t、Stringオブジェクトの場合は\\のようなエスケープシーケンス文字を定義するために使用されます。

ので、代わりの

文字列str = "ドメイン\ cdsid" としてStringオブジェクトを書きます;

あなたは

文字列str = "ドメイン\\ cdsid" を記述する必要があります。

最初のオプションはコンパイル時エラーです。 Javaでは、バックスラッシュの後では、エスケープシーケンス文字でなければならないと予想されますが、最初のケースではそうではありません。なお、上記のコンパイル時エラーに無効なエスケープシーケンス(有効なものは、B \ Tの\ n個の\のF \のRを\ \している」\」\\)

として別々の各々を時エラーをコンパイルしますvalueはjavaのエスケープシーケンス文字です。

だからあなたの最終的なコードが

String str = "domain\\cdsid"; 
System.out.println(str.split("\\\\")[1]); 

になりますが、この情報がお役に立てば幸いです。

+0

あなたはソリューションを投稿する前にコードを実行しましたか? – Jarvis

+0

申し訳ありませんが、どの部分がエラーを出すのですか?私はすでに、最初のオプションは説明にコンパイル時エラーを与えるだろうと述べました。 – SachinSarawgi

+0

あなたが投稿した ''最終的な ''コード。 – Jarvis