2017-11-13 44 views
3

文字列のエスケープ文字のインデックスを取得する方法は?文字列のエスケープ文字のインデックスを取得するには?

String test="1234\567890"; 
System.out.println("Result : "+test.lastIndexOf("\\")); 

私が得る結果: -1

私が必要とする結果:4

+5

バックスラッシュ**は**文字列にありません。文字列にバックスラッシュが必要な場合は、文字列リテラルに\\を入れる必要があります。 – khelwood

+0

私はそれを印刷するかどうかを見てください。このように印刷されます。1234.7890 –

+0

あなたの文字列リテラルは '\ 56'を指定します。これは' .'文字です。それは '' \ ''文字を含んでいません。あなたは**。**文字を検索することができます**。 – khelwood

答えて

2

私はあなたがエスケープ文字を使用するときためにはJavaのためのものであることを得ることができるとは思いません特殊な方法で次の文字を解釈する。言い換えれば、エスケープ文字と文字列に表示される次の文字は、実際に実行されているプログラムの観点からは1つのエンティティです。

\\」を検索すると、リテラル文字 '\'がエスケープ文字ではなく検索されています。コード0x5 (ENQ)の文字があるjava fiddle

\5ながら、5が文字0x35です:

ここでは、違いを見ることができます。 See the table

+0

System.out.println( "1234 \ 567890");このような結果が出ています1234.7890 –

+0

正解、スラッシュは5にspeacilの意味を与えています。私の答えのその部分は正しくないので、私はそれを変更しますが、残りはまだ立っています。 – Juan

+0

私はこのコンセプトをはっきりと理解しています、ありがとう。 –

3

オリジナルの文字列には\が含まれていません。つまり、存在しないものを探しているということです。文字列に\を追加するには、Inorderをクリックしてください。追加中にエスケープする必要があります。

String test="1234\\567890"; 
System.out.println("Result : "+test.lastIndexOf("\\")); 

あなたのケースでは

enter image description here

tableで最後の行を見てください。

関連する問題