마지막 점 대신에 문자열을 두 개로 분리하는 가장 좋은 방법은 무엇이며 관용적일까요? 기본적으로 파일 경로 또는 URL의 나머지 경로에서 확장자를 분리합니다. 지금까지 내가하고있는 일은 스플릿 (".")과 마지막으로 마지막 부분 인 모든 것의 String.Join (".")입니다. 파리를 죽이기 위해 바주카포를 사용하는 것 같은데.C에서 마지막 점에서 문자열을 끊는 가장 좋은 방법 #
답변
이 같은 성능, 뭔가하려면 다음
string s = "a.b.c.d";
int i = s.LastIndexOf('.');
string lhs = i < 0 ? s : s.Substring(0,i),
rhs = i < 0 ? "" : s.Substring(i+1);
당신은 Path.GetFilenameWithoutExtension()를 사용할 수
또는 당신을 위해 작동하지 않을 경우 : LastIndexOf 어쩌면 여기에 일부 사용
int idx = filename.LastIndexOf('.');
if (idx >= 0)
filename = filename.Substring(0,idx);
문자열 방법.
그러나 Path 또는 FileInfo 연산자는 파일 이름 기반 작업에 더 적합합니다.
나는 당신이 정말 찾고있는 것은 Path.GetFileNameWithoutExtension Method (System.IO)하지만, 생각 단지 그것의 지옥에 대한 :
string input = "foo.bar.foobar";
int lastDotPosition = input.LastIndexOf('.');
if (lastDotPosition == -1)
{
Console.WriteLine("No dot found");
}
else if (lastDotPosition == input.Length - 1)
{
Console.WriteLine("Last dot found at the very end");
}
else
{
string firstPart = input.Substring(0, lastDotPosition);
string lastPart = input.Substring(lastDotPosition + 1);
Console.WriteLine(firstPart);
Console.WriteLine(lastPart);
}
는 확장자가없는 경로를 얻을
System.IO.Path.GetFileNameWithoutExtension(fileName)
를 사용하여 얻을하려면 (점 포함) 확장 파일, 사용
Path.GetExtension(fileName)
편집 :
불행하게도 GetFileNameWithoutExtension는 선행 경로를 제거합니다, 그래서 대신 당신은 사용할 수 있습니다
if (path == null)
{
return null;
}
int length = path.LastIndexOf('.');
if (length == -1)
{
return path;
}
return path.Substring(0, length);
URL과도 작동합니다. – jmservera
Path.GetExtension()
당신을 도움이 될 것입니다.
무엇 문자가 마지막으로 발견 위치를 반환 lastIndexOf에서도 방법을 사용하는 방법에 대한. 그런 다음 하위 문자열을 사용하여 원하는 것을 추출 할 수 있습니다.
String.LastIndexOf는 문자열에 문자가있는 경우 점의 위치를 반환합니다. 그런 다음 String.Substring 메서드를 사용하여 문자열을 분할 할 수 있습니다.
당신은 작업을 acomplish하는 문자열의 방법
lastIndexOf에서도 및 문자열 사용할 수 있습니다.
- 1. C# 소스 코드에서 긴 문자열을 끊는 가장 좋은 방법
- 2. 줄의 문자열을 끊는 방법
- 3. C에서 FASTA 파일을 읽는 가장 좋은 방법 #
- 4. C에서 UNC 경로에 액세스하는 가장 좋은 방법
- 5. C에서 비동기 이벤트를 만드는 가장 좋은 방법 #
- 6. C에서 클래스간에 데이터를 공유하는 가장 좋은 방법 #
- 7. 기존 소켓을 끊는 방법?
- 8. 태그를 만들거나 문자열을 분할하는 가장 좋은 방법
- 9. C에서 문자열을 디코딩하는 방법 #
- 10. 가장 좋은 방법
- 11. C에서 문자열을 char로 변환하는 방법
- 12. C에서 코드로 문자열을 변환하는 방법 #
- 13. C에서 문자열을 int로 변환하는 방법
- 14. MySQL 연결을 끊는 방법
- 15. Android에서 전화를 끊는 방법?
- 16. 캐시에 가장 좋은 방법은 C에서 사전을 저장 #
- 17. C에서 의사 결정을 실행하는 가장 좋은 방법은 #
- 18. 은 객관적인 C에서 가장 좋은 디자인 패턴입니까?
- 19. C에서 QueryString 매개 변수의 유효성을 검사하는 가장 좋은 방법 #
- 20. Pro * C에서 PL/SQL 패키지 커서를 사용하는 가장 좋은 방법
- 21. C에서 동시 스레드 수를 제어하는 가장 좋은 방법 #
- 22. C에서 행렬 요소를 병렬로 정리하는 가장 좋은 방법 #
- 23. 장바구니를 제어하는 가장 좋은 방법
- 24. 파이썬으로 날짜 문자열을 가져 오는 가장 좋은 방법
- 25. 대용량 목록에 대해 기존 문자열을 테스트하는 가장 좋은 방법
- 26. 스칼라에서 문자열을 포맷하는 가장 좋은 방법은 무엇입니까?
- 27. 하위 문자열을 얻는 가장 좋은 방법은 무엇입니까?
- 28. ObjC/C에서 String을 숨기거나 암호화하는 가장 좋은 방법은 무엇입니까?
- 29. 코드로 인터넷 연결을 끊는 방법?
- 30. 가장 좋은 방법
URL 조각에서 작동합니까 (\\ 대신 /를 사용)? 그리고 "폴더"도 반환할까요? Path.GetFilename()은 AFAIK 디렉토리가없는 파일의 이름 만 반환합니다. – Pablo
OP가 파일 경로 만 묻는 경우 +1이됩니다. 그러나 System.IO.Path 문서에는 URL에 대한 지원이 언급되어 있지 않습니다. – OregonGhost
정확하지만 파일 이름에 경로가 포함되어 있지 않은 경우 효과가있을 수 있습니다. –