В Java "mar\12\2013"
является недопустимой строкой.
Чтобы использовать mar\12\2013
на Java, вам необходимо "mar\\12\\2013"
.
Если вы принимаете данные от пользователя как "mar\12\2013"
, то также вы должны разделить его на \\\\
.
Причина:.split()
принимает regex
в качестве параметра.
- Чтобы указать
\
в регулярном выражении, нам нужно \\
, потому что \
является маскирующим в regex
.
Кроме того, \
является символом эвакуации на Java, поэтому нам необходимо избегать как \
\\
, что и делает его \\\\
.
String s1= //take input from user // "mar\12\2013"
String[]s=s1.split("\\\\");
for(String s2:s) {
System.out.println(s2);
}
Приведенный выше код будет работать так, как вы хотите.
См. Рабочий код here.
Вам нужно будет определить 'String' как' mar \\ 12 \\ 2013', прежде чем он сработает, но в противном случае ваш код отлично подходит для меня – MadProgrammer
Возможный дубликат [Как разбить строку java на обратную косую черту] (http://stackoverflow.com/questions/23751618/how-to-split-a-java-string-at-backslash) –
Внутреннее представление вашей строки - 'mar \ n3'. В этом нет обратной косой черты. – Jens