2011-12-19 72 views
2

我聲明瞭一串特殊字符。VS2008非法讀取字符串文本

var SpecialCharSequence = "',!,#,$,%,&,',(,),*,+,-,.,\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,"; 

爲什麼它給人一種錯誤的反斜槓

Unrecognized escape sequence  

當它已經在引號。

+1

嘗試使用'SpecialCharSequence = @「' – V4Vendetta 2011-12-19 09:47:30

回答

4

那是因爲你的字符串包含\哪一個是轉義字符。

替換\\\

var SpecialCharSequence = "',!,#,$,%,&,',(,),*,+,-,.,\\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,"; 
0

是,

\導致一個轉義序列,你在你的字符串有。 將其轉換爲\\,它將工作。 \是一個特殊符號,並代表文字\你需要它們的兩倍。

+0

謝謝回答 – joshua 2011-12-19 11:27:59

2

聲明是這樣的:(與逐字直譯@)

var SpecialCharSequence = @"',!,#,$,%,&,',(,),*,+,-,.,\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,"; 
+0

謝謝回答 – joshua 2011-12-19 11:28:36

0

\是轉義字符。如果要將string與單個\一起使用,請在string的開頭添加@,使其成爲literal string。否則,您需要第二個\\才能跳過單個\

var SpecialCharSequence = @"',!,#,$,%,&,',(,),*,+,-,.,\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,";

+0

KnightThanks的答案 – joshua 2011-12-19 11:27:34

0

由於向後斜線表示這將是在與下一個字符組合的字符逃逸。

像\ t表示選項卡,\ r表示返回。

你既可以使用\來表示一個反斜槓,或者您可以使用原義字符串(通過添加字符串前的@),就像這樣:

var SpecialCharSequence = @"',!,#,$,%,&,',(,),*,+,-,.,\,/,:,;,<,=,>,?,@,[,],^,_,{,|,},~,"; 

在逐字字符串,你告訴你不使用字符轉義編譯字符串中的...

+0

謝謝回答 – joshua 2011-12-19 10:04:17