'\"'
キャラクターと を区別する方法を知っている人はいます'"'
か?文字列を前処理しようとしていますが、このステートメントで混乱します。
system.assert(' "b" ' == ' "\"" '.replace('\"','b'); //FAILS, returns ' bbb '
'\"'
キャラクターと を区別する方法を知っている人はいます'"'
か?文字列を前処理しようとしていますが、このステートメントで混乱します。
system.assert(' "b" ' == ' "\"" '.replace('\"','b'); //FAILS, returns ' bbb '
これを試してみてください(replace('\ "')の代わりにreplace('\"'):
system.assert(' "b" ' == ' "\"" '.replace('\\"','b');
あなたの例では、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'));