0

'\"'キャラクターと を区別する方法を知っている人はいます'"'か?文字列を前処理しようとしていますが、このステートメントで混乱します。

system.assert(' "b" ' == ' "\"" '.replace('\"','b'); //FAILS, returns ' bbb '
4

2 に答える 2

0

これを試してみてください(replace('\ "')の代わりにreplace('\"'):

system.assert(' "b" ' == ' "\"" '.replace('\\"','b');
于 2012-06-10T20:34:05.263 に答える
0

あなたの例では、Salesforceは基本的にバックスラッシュを無視しています。

system.assert('"' == '\"'); // yup
system.assertEquals(1, '\"'.length()); // just one character
system.assertEquals(1, '"'.length()); // just one character--the same one

元の文字列に実際のバックスラッシュ文字が含まれている場合、次のような別のバックスラッシュでエスケープする必要があるのはバックスラッシュです。

system.assertEquals(1, '\\'.length()); // just one character:  \
system.assertEquals(2, '\\"'.length()); // two characters:  \"
system.assert(' "b" ' == ' "\\"" '.replace('\\"','b'));
于 2012-06-11T19:25:20.393 に答える