Character.isAlphabetic(char)
Character.isDigit(char)
String str = input.toLowerCase();
1.String.concat(String or char);
2.StringBuilder.append(String or char);
1.String.replace(String,"");
2.StringBuilder.deleteCharAt(int);
(3.String.substring(int start,int end); // 이건 특정구간의 문자열만 남기는 메서드)
반환형태 주의!!
String메서드 사용시 step3=step3.replace("..", ".");
StringBuilder메서드 사용시 step2.append(c);
public class StringBuffer {
public static void main(String[] args) {
String str = "abcdefghijk";
StringBuilder sb = new StringBuilder(str);
// 문자열 -> StringBuilder
p("문자열 String 로 변환 : " + sb.toString());
// 출력결과 : 문자열 String 로 변환 : abcdefghijk
p("문자열 추출 : " + sb.substring(3,7));
// 출력결과 : 문자열 추출 : defg
p("문자열 연결 : " + sb.append("xyz"));
// 출력결과 : 문자열 연결 : abcdefghijkxyz
p("문자열의 길이 : " + sb.length());
// 출력결과 : 문자열의 길이 : 14
p("용량의 크기 : " + sb.capacity());
// 출력결과 : 용량의 크기 : 27
p("문자열 역순 변경 : " + sb.reverse());
// 출력결과 : 문자열 역순 변경 : zyxkjihgfedcba
//StringBuilder의 메서드는 원본에영향을 끼친다
p("문자열 String 로 변환 : " + sb.toString()); // 출력결과 : 문자열 String 로 변환 : zyxkjihgfedcba
p(sb2.toString());
// StringBuilder 객체 출력할 땐 String으로 변환시켜주기
} // end of main
public static void p(String str){
System.out.println(str);
}
} // end of class
출처: https://zzdd1558.tistory.com/143 [YundleYundle:티스토리]
class Solution {
public String solution(String new_id) {
String answer = "";
// 1. 모든 대문자 -> 소문자
new_id=new_id.toLowerCase();
// 2.알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거
char[] id_arr = new_id.toCharArray();
StringBuilder strBuilder = new StringBuilder(); // append 메서드 쓰기 위해 StringBuilder객체 생성
for(char c:id_arr) {
if( (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')||c=='-'||c=='.'||c=='_') {
strBuilder.append(c);
}
}
// 3. .가 두번 이상 연속된 부분을 .으로 치환
new_id = strBuilder.toString().replace("..", ".");
while(new_id.contains("..")) {
new_id=new_id.replace("..", ".");
}
// 4. .가 처음이나 끝에 위치하면 제거
StringBuilder strBuilder2 = new StringBuilder(new_id);
if(strBuilder2.length()>0) {
if(strBuilder2.charAt(0)=='.'){
strBuilder2.deleteCharAt(0);
}
}
if(strBuilder2.length()>0) {
if(strBuilder2.charAt(strBuilder2.length()-1)=='.') {
strBuilder2.deleteCharAt(strBuilder2.length()-1);
}
}
// 5. 빈 문자열이면 'a' 대입
new_id = strBuilder2.toString();
if (new_id.equals("")) { // StringBuilder 객체를 String객체로 변환
new_id="a";
}
// 6. 길이가 16이상이면 첫 15자를 제외한 나머지 문자들 제거 + 만약 제거후 마지막 문자가 .이면 .도 제거
if(new_id.length()>=16) {
new_id=new_id.substring(0,15);
}
if (new_id.charAt(new_id.length()-1)=='.') {
new_id=new_id.substring(0,new_id.length()-1);
}
// 7. 길이가 2자 이하라면 마지막 문자를 길이가 3이 될때까지 반복해서 붙임
StringBuilder strBuilder3 = new StringBuilder(new_id);
if(strBuilder3.length()<=2) {
while(strBuilder3.length()<3) {
strBuilder3.append(strBuilder3.charAt(strBuilder3.length()-1));
}
}
answer = strBuilder3.toString();
return answer;
}
}