# 문제 , string builder
string 메서드 마지막 문제입니다. 가상 ip를 입력하면 예를 들어 형태가 xxx.xxx.x.xx이면 저 빨간색을
***형태로 바꾸는 문제입니다.
String ss = "192.111.4.102";// 가상 IP
// . 의 index 를 관리하는 배열
// i 는 루프벼수로 IP 문자열의 처음부터 끝까지 루프를 돌며 문자를 리턴 시키는 변수로 활용 된다.
// j는 찾아낸 , 의 index 번호값을 지닐 변수로 활용된다.
int idx3[] = new int[3];
for(int i = 0,j=0;i<ss.length(); i++) {
// 분리된 문자가 . 인지 검증
if(ss.charAt(i) == '.') {
// . 찾았으니 . 의 index 번호 안 i의 값을 배열의 j 인덱스에 저장한다.
idx3[j] = i;
// 저장 되었으니 다음 index 로 증가
j++;
}
}
// idx3 의 모든 값을 Arrays 클래스의 toString() 을 이용하여 출력 시켜본다.(배열 값이 문자열로 출력된다.)
System.out.println(Arrays.toString(idx3));
// 두번째 . 까지를 포함하는 IP 문자열을 분리 시킨다.
String fir = ss.substring(0, idx3[1]+1);
// 변경될 IP 값만 분리 시킨다.
String mid = ss.substring(idx3[1]+1, ss.lastIndexOf('.'));
// 분리된 IP 대신 *** 을 넣어준다.
mid = "***";
System.out.println(fir);
System.out.println(mid);
// ip의 마지막 . 이후의 값을 분리 시킨다.
String lastOne = ss.substring(ss.lastIndexOf('.'), ss.length());
// 다시 모두 합쳐준다.
String res = fir + mid + lastOne;
System.out.println(res);
문제 해설입니다. ip를 입력받았으면 ip들을 쪼개서 해당하는 번호만 ***처리하고 쪼갠것들을 다시
모으는 작업을 해야합니다.
다음은 Stringbuilder 메서드 입니다. (string 메서드와 다름!)
Stringbuilder 도 String 과 마찬가지로 여러가지 메서드들이 존재합니다.

한가지의 메서드 입니다. append()를 쓰면 문자열 끝에 값을 추가해 줍니다.
위의 식처럼 쓰면 java에 true가 더해진 javatrue 가 출력됩니다.

다음으로 index를 쓰게 되면 지정된 index에 문자열을 끼워 넣을 수 있습니다.
java에서 1번째 자리에 kjjjjj를 넣으라는 뜻이 됩니다. 따라서 출력되는 값은
jkjjjjjava 가 출력됩니다. (index는 0부터 시작!!)
'Java' 카테고리의 다른 글
| Java_18Day (0) | 2019.04.11 |
|---|---|
| Java_17Day (0) | 2019.04.09 |
| Java_15Day (0) | 2019.04.05 |
| Java_14Day (0) | 2019.04.04 |
| Java_13Day (0) | 2019.04.03 |