значение Contains (@ "" "")) в c # - PullRequest
       3

значение Contains (@ "" "")) в c #

0 голосов
/ 03 августа 2011

Строка strChkQoutes является

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

Следующее значение истинно (c #).

strChkQoutes.Contains(@"""")

Я не понимаю, что это значит. Если я хочу преобразовать его в Java, строка strChkQoutes будет

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

следующее значение - false (java).

strChkQoutes.contains("\"\"")   

В чем разница функции содержит в .net и в Java?

Ответы [ 2 ]

4 голосов
/ 03 августа 2011

Разница здесь не в методах, а в строках, которые вы передаете в методы.

В дословных строковых литералах C # @"""" действительно означает один символ двойной кавычки. Первый внутренний " экранирует второй внутренний ", так как вы не можете использовать обратную косую черту для экранирования. Reference.

Если бы вы не использовали дословный строковый литерал, вызов C # выглядел бы так:

strChkQuotes.Contains("\"")

Отличается от вашей строки Java, которая содержит две двойные кавычки в строке и поэтому contains() возвращает false.

1 голос
/ 03 августа 2011

@ - это строковый литерал C #, которого нет в Java.В Java вам нужно экранировать строку: .contains("\""). См. Здесь , как разрешаются @ -литералы.

...