와 분할 문자열 :자바 - 여러 대시
first-second-third
그래서 기본적으로 내가 원하는 것을 마지막으로 돌진하기 전에 문자열을 얻을 수 있습니다를 (-) . 누구나 내게 이것에 가장 적합한 해결책을 줄 수 있습니까?
와 분할 문자열 :자바 - 여러 대시
first-second-third
그래서 기본적으로 내가 원하는 것을 마지막으로 돌진하기 전에 문자열을 얻을 수 있습니다를 (-) . 누구나 내게 이것에 가장 적합한 해결책을 줄 수 있습니까?
음, 아래로 많은 표하지만 난 솔루션
그렇게 할 수있는 가장 효율적인 방법을 추가 할 것입니다은 마지막에 출현하는이 캐릭터 라인 내에서 인덱스를 반환 java.lang.String의 번호 lastIndexOf에서도을 사용하고 있습니다 뒤로
검색 지정된 문자의lastIndexOf에서도 -1을 돌려줍니다 대시
String str = "first-second-third";
int lastIndexOf = str.lastIndexOf('-');
System.out.println(lastIndexOf);
System.out.println(str.substring(0, lastIndexOf)); // 0 represent to cut from the beginning of the string
출력이 존재하지 않는 경우
을12
첫 번째
String s = "first-second-third";
String newString = s.substring(0,s.lastIndexOf("-"));
포인트가 고정되어 응답되었습니다. –
는 그냥도 수행 할 수 있습니다 정규식을 사용하여 는 lastIndex 방법 이외의 다른 방법으로, 코드 아래 시도 :
Pattern p = Pattern.compile("\\s*(.*)-.*");
Matcher m = p.matcher("first-second-third");
if (m.find())
System.out.println(m.group(1));
이것은 'lastIndexOf'와 동일하게 작동하지 않습니다. 예를 들어 입력 내용에 개행 문자가 있으면 작동하지 않습니다. –
네, 맞습니다. 방금 정규 표현식에 대한 옵션을주었습니다 ... –
무엇 지금까지 해봤 니? – Luke
lastIndefOf ("-")를 가져오고 0에서이 인덱스로 부분 문자열을 가져 오는 것이 좋습니다. 그렇지 않습니다. –
'String.split'의 문서를 읽으십시오. – Jens