2011-08-03 18 views
0

文字列strChkQoutes意味は

IF(H15:H119=\"y\",IF(G15:G119=\"y\",1,0) 

次の値が真(C#の場合)であるC#で(@ "" ""))が含まれています。

strChkQoutes.Contains(@"""") 

意味が分かりません。私は、Javaに変換したい場合は、文字列strChkQoutesは、以下の値が(Javaの)虚偽である

IF(H15:H119="y",IF(G15:G119="y",1,0) 

です。

strChkQoutes.contains("\"\"") 

.netとjavaのcontains関数の違いは何ですか?

+0

申し訳ありませんが、訂正しました。 – guhai

答えて

4

ここでの違いはメソッドにあるのではなく、メソッドに渡す文字列です。

C#の逐語的な文字列リテラルでは、@""""は実際には1つの二重引用符を意味します。最初の内側の"は、エスケープにバックスラッシュを使用できないため、2番目の内側の文字を"からエスケープします。 Reference.

リテラル逐語的文字列を使用しなかった場合は、C#の呼び出しは次のようになります。が連続して二重引用符をエスケープ含まれているあなたのJava文字列、異なる

strChkQuotes.Contains("\"") 

そのため、はfalseを返します。

1

@は、javaにはないC#の文字列リテラルです。 Javaでは文字列をエスケープする必要があります:.contains("\"")。 @ -literalsの解決方法はSee hereです。