Cute Running Puppy

Java

Java_16Day

jwjin 2019. 4. 8. 23:37
728x90

# 문제 , 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부터 시작!!)

 

728x90

'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