2013-05-07 1 views
3

이 문제에 관해 많은 질문이있는 것 같지만 발견 한 것 중 아무 것도 나를 위해 작동하지 않는 것 같습니다.String.replace "/"with "/"

내 코드 :

string subFolderName = category = "Parent/Sub\\Sub sub"; 
string category = subFolderName.Replace(@"\\", @"/"); 

subFoldername와 같은 문자열로 category을 반환 예 :

"Parent/Sub\\Sub sub". 

내가 실제로 원하는 것은 :

"Parent/Sub/Sub sub" 
+2

''Parent/Sub \\ Sub sub "'(선행'@'제외)에는 * 단일 * 문자가 들어 있습니다. 대체품이 그것을 찾지 못한다. 그런 다음 디버거에서 문자열을 일반 리터럴 (예 : \ 문자를 이스케이프 처리해야 함)로 표시하는 결과를 검사합니다. –

+0

감사합니다. – Robert

답변

7

그냥

시도,210

그것은 작동

string category = subFolderName.Replace(@"\", @"/"); 
, category = "Parent/Sub\\Sub sub";는 하나의 \

+2

완벽한! 감사합니다. SO가 허용하는대로 곧이 대답을 받아 들일 것입니다. – Robert

+1

'@ "/"'를''/ "'로 바꿀 수 있습니다. –

2

Damien_The_Unbeliever으로 당신이 문자열로 "Parent/Sub\\Sub sub"을 쓸 때, 실제로는 하나의 \ 문자가 포함되는 경우, 그의 comment 말했다 포함되어 있기 때문이다. 따라서 String.Replace 메서드에서 문자열에 \\을 찾을 수 없습니다.

사용

verbatim string literal , 당신의 캐릭터는 당신이 그것을 쓴 방법을 정확하게될 것입니다.

string subFolderName = category = @"Parent/Sub\\Sub sub"; 
string category = subFolderName.Replace(@"\\", @"/"); 
Console.WriteLine(category); 

출력;

Parent/Sub/Sub sub 

여기는 DEMO입니다.

+0

우수 - 감사합니다. – Robert

+0

@ 로버트 당신은 환영합니다';)' –

1

카테고리의 내용을 어떻게보고 있습니까? 당신은 VS의 디버거를 사용하는 경우 그것은 \\

는 그래서 하나가

string category = subFolderName.Replace(@"\", @"/"); 

또는

string category = subFolderName.Replace("\\", "/"); 
+0

VS 디버거를 찾고있었습니다. 이제는 의미가 있습니다. – Robert

1
string category = subFolderName.Replace(@"\", "/"); 

사용이 필요로 나타납니다 문자열의 문자열 그래서 \을 피할 것 .

관련 문제