Измените "\" на "/" - PullRequest
       27

Измените "\" на "/"

2 голосов
/ 09 декабря 2011

Я ищу простой кусок кода, который изменит все обратные слэши в строке для прямого слэша с использованием Java.

Я пробовал это: word.replaceAll ("\", "/");

но это не сработает.У кого-нибудь есть быстрое решение для этого?

Спасибо

PS Я также только что заметил, что почти ни одна из моих строковых операций не работает.Я пробовал такие вещи, как toUpperCase (), и ничего не случилось со строкой?!?

Ответы [ 5 ]

4 голосов
/ 09 декабря 2011

replaceAll() - это неправильный метод, который следует использовать в этом случае, потому что он использует регулярные выражения для сопоставления.

Вы хотитеболее простой replace() метод, который заменяет литералы.Попробуйте это:

word = word.replace("\\","/");

Примечания:

  1. Вы должны избежать обратной косой черты с помощью другой обратной косой черты, т. Е. "\\" - это то, как вы кодируете строку, которая является одиночной обратной косой чертой
  2. Строка неизменна - Строковые методы возвращают новую строку с результатом ... они не изменяют строку.Вот почему вам нужно закодировать его как myString = myString.someMethod();
4 голосов
/ 09 декабря 2011

функции будут возвращать новую строку с изменениями, которые вы пытаетесь реализовать, а не изменять саму строку.в случае \ вам может понадобиться экранированная косая черта (\\)

1 голос
/ 09 декабря 2011

все, что вам нужно сделать, это word = word.replaceAll ("\", "/");

вы должны знать, что строку нельзя изменить.

теметоды работают, перебирая символы строки и заменяя все обратные слэши косой чертой

1 голос
/ 09 декабря 2011

Строки неизменны .
Они никогда не могут измениться.

Вам нужно написать word = word.something().

1 голос
/ 09 декабря 2011

В этом случае вам необходимо использовать:

word.replaceAll(("\\", "/");

toUpperCase() возвращает строку, она не изменяет строку, вызывающую метод.

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html

...