J'ai essayé de casser la chaîne en tableaux et de remplacer \
par \\
, mais je n'ai pas pu le faire. J'ai également essayé String.replaceAll, ce qui ressemble à ceci ("\","\\");
. Je veux fournir un chemin à JNI et il lit seulement de cette façon. Quelqu'un peut-il m'aider à ce sujet s'il vous plaît. Je vous remercie.
N'utilisez pas String.replaceAll
dans ce cas, car cela est spécifié en termes d'expressions régulières, ce qui signifie que vous auriez encore besoin de s'échapper. Cela devrait être bon:
String escaped = original.replace("\\", "\\\\");
Notez que les barres obliques inverses sont doublées car elles sont dans des littéraux de chaîne Java - les chaînes réelles impliquées ici sont donc des "barres obliques inversées simples" et des "barres obliques inversées doubles" - et non des chaînes doubles et quadruples.
replace
fonctionne sur des chaînes simples - pas de regex impliqués.
Vous pouvez utiliser replaceAll
:
String escaped = original.replaceAll("\\\\", "\\\\\\\\");
Je veux fournir un chemin à JNI et il lit seulement de cette façon.
Ce n'est pas juste. Vous n'avez besoin que de doubles barres obliques inverses dans des chaînes littérales que vous déclarez dans un langage de programmation. Vous ne devez jamais faire cette substitution au moment de l'exécution. Vous devez repenser pourquoi vous faites cela.