StringBuffer 클래스 사용
StringBuffer를 사용하여 문자열의 각 대문자 앞에 밑줄을 추가하려면 -
-
빈 StringBuffer 개체를 만듭니다.
-
Character 클래스의 isUpperCase() 메서드는 문자를 받아 대문자인지 확인하고, 대문자이면 true를 반환합니다. 이 방법을 사용하여 문자열의 각 문자를 확인합니다.
-
대문자의 경우에는 append() 메소드를 사용하여 그 앞에 밑줄을 추가합니다.
예시
public class Adding_BeforeCapital { public static void main(String args[]) { String str = "HelloHowAreYouWelcome"; StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) { if(Character.isUpperCase(str.charAt(i))) { sb.append("_"); sb.append(str.charAt(i)); } else { sb.append(str.charAt(i)); } } String result = sb.toString(); System.out.println(result); } }
출력
_Hello_How_Are_You_Welcome
정규 표현식 사용
String 클래스의 replaceAll() 메서드는 정규 표현식과 교체 문자열을 나타내는 두 개의 문자열을 받아들이고 일치하는 값을 주어진 문자열로 바꿉니다.
예시
public class Adding_BeforeCapital { public static void main(String args[]) { String str = "HelloHowAreYouWelcome"; String result = str.replaceAll("()([A-Z])", "$1_$2"); System.out.println(result); } }
출력
_Hello_How_Are_You_Welcome