eyesOfTheTiger
형식의 문자열을 eyes-of-the-tiger
으로 변환하는 방법은 무엇입니까?문자열을 다른 문자열 형식으로 변환하는 방법
답변
"(?<!(^|[A-Z0-9]))(?=[A-Z0-9])|(?<!^)(?=[A-Z][a-z])"
과 같은 정규식을 사용하여 split() 문자열을 입력 한 다음 각 분할 끝에 -
을 추가 할 수 있습니다.
public String camelCaseToDashSeparated(String initialString) {
if(initialString==null || initialString.length()<1)
return initialString;
StringBuilder str = new StringBuilder();
for (String w : "eyesOfTheTiger".split("(?<!(^|[A-Z0-9]))(?=[A-Z0-9])|(?<!^)(?=[A-Z][a-z])")) {
str.append(w.toLowerCase()+"-");
}
return str.substring(0, str.length()-1);
}
또 다른 방법은 다음과 같습니다 String
통해
여행, char
에 의해 char
에서, StringBuilder
에 문자를 계속 추가. char
이 대문자 인 경우 char
의 소문자를 사용하여 StringBuilder
에 -
을 추가합니다.
public static String camelCaseToDashSeparated2 (String initialString) {
StringBuffer buff = new StringBuffer();
for(int x = 0; x < initialString.length(); x++) {
char c = initialString.charAt(x);
if(Character.isUpperCase(c)) {
buff.append("-").append(Character.toLowerCase(c));
}
else {
buff.append(c);
}
}
return buff.toString();
}
오 마이 갓. 정규 표현식없이 코드를 작성하는 것보다이 정규 표현식이 어떻게 작동하는지 문서화하는 데 더 많은 공간이 필요합니다 (당연히 전체적으로 훨씬 효율적이지 않습니다). –
@JBNizet 물론이 문제를 본 첫 번째 본능이었습니다. – NINCOMPOOP
하위 문자열, 정규식 등을 통해 직접이 함수를 구현하기 전에 Google 구아바 사용을 고려해보십시오. Class com.google.common.base.CaseFormat
은 의도적으로을 해결합니다.
귀하의 경우에는 LOWER_CAMEL
및 LOWER_HYPHEN
클래스 상수와 to(CaseFormat format, String s)
메서드가 필요합니다.
IMO, 모든 것을 직접 구현하는 것보다 성숙하고 잘 테스트 된 라이브러리를 사용하는 것이 좋습니다.
신속하고 더러운 솔루션은 다음과 같이 될 수있다 : 그냥 문자열을 통해 여행
public static String toDashed(String value) {
if (null == value)
return null;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < value.length(); ++i) {
char ch = value.charAt(i);
if ((ch >= 'A') && (ch <= 'Z') && (i > 0)) {
sb.append('-');
sb.append(Character.toLowerCase(ch));
}
else
sb.append(ch);
}
return sb.toString();
}
(영어 등 이외의 공백, 대시, 마침표, 언어로 무엇을 결정해야한다) 문자가 대문자이면 다른 동작을 취하십시오.
public class Test {
private static String upperCaseToDash(String input) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (Character.isUpperCase(c))
sb.append('-').append(Character.toLowerCase(c));
else
sb.append(c);
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(upperCaseToDash("eyesOfTheTiger"));
}
}
정확하게 구현되었습니다. +1. –
- 1. 날짜 형식으로 문자열을 변환하는 방법
- 2. 문자열을 날짜 형식으로 변환하는 방법
- 3. NSDate 형식으로 문자열을 변환하는 방법?
- 4. 지정된 형식으로 문자열을 DateTime으로 변환하는 방법?
- 5. j2me에서 이진 데이터를 문자열 형식으로 변환하는 방법
- 6. WP7에서 문자열을 UTF-8 문자열 형식으로 변환하는 방법
- 7. 캘린더를 사용하여 날짜 문자열을 다른 형식으로 변환하는 방법
- 8. 문자열을 C++의 템플릿 형식으로 변환하는 방법
- 9. 문자열을 다른 유형으로 변환하는 방법
- 10. Java에서 다른 기수로 변경된 문자열을 변환하는 방법
- 11. 문자열 형식을 실제 형식으로 변환하는 코딩 방법
- 12. 주어진 날짜 형식으로 문자열을 변환하는 방법
- 13. 문자열을 MongoDB 쿼리의 형식으로 변환하는 방법
- 14. 문자열을 Java에서 표준 시간대 형식으로 변환하는 방법
- 15. 형식화 된 날짜 문자열을 다른 형식으로 변환하는 방법
- 16. sqlite에서 문자열 날짜를 날짜 형식으로 변환하는 방법
- 17. VBA를 날짜 형식으로 변환하는 문자열
- 18. iphone에서 문자열을 변환하는 문자열
- 19. 문자열을 Json 형식으로 변환하는 방법은 무엇입니까?
- 20. 정수형 배열을 다른 형식으로 변환하는 방법은 무엇입니까?
- 21. JavaScript에서 문자열을 ASCII 형식으로 변환하는 방법은 무엇입니까?
- 22. 문자열을 C++의 문자열에 언급 된 데이터 형식으로 변환하는 방법
- 23. 자바 스크립트에서 예상 날짜 형식으로 문자열을 변환하는 방법?
- 24. ARGB 형식으로 변환하는 방법
- 25. 다른 문자열을 날짜 시간으로 변환하는 방법
- 26. 타임 스탬프를 다른 데이터 형식으로 변환하는 방법?
- 27. nsdateformatter를 사용하여 nsdate를 다른 형식으로 변환하는 방법
- 28. SQL 서버를 다른 형식으로 변환하는 방법
- 29. 문자열을 Char (20) sql 데이터 형식으로 변환하는 방법
- 30. 문자열을 원하는 형식으로 변환하는 방법은 무엇입니까?
정말 혼자서 찾아야합니다. String와 Character의 javadoc를 읽습니다. 적어도 가능한 해결책에 대해 생각해 보았습니다. –
문자열 클래스 API 참조 및 하위 문자열 메서드 사용 –
가능한 복제 http://stackoverflow.com/questions/17046827/replace-with-capital-letters – austin