아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
도덕적인가젤89
도덕적인가젤8921.04.08

자바프로그래밍 질문이요 코드좀 알려주세용

설명

StringBuffer클래스를 활용하여 명령처럼 문자열을 수정하라.

아래 실행 예시에서 love!LOVE는 love를 찾아 LOVE로 수정하라는 명령이다.

첫 번째 만난 문자열만 수정한다.


입력

ex)

>>우리는 love Java Programming.

명령: 우리는!We

명령: LOV!사랑

명령: !Java

명령: love!LOVE

명령: 그만

출력

하나의 명령에 하나의 결과를 출력한다.

ex)

We love Java Programming.

찾을 수 없습니다!

잘못된 명령입니다!

We LOVE Java Programming.

종료합니다.

예시 입력 1

>>우리는 love Java Programming. 명령: 우리는!We 명령: LOV!사랑 명령: !Java 명령: love!LOVE 명령: 그만

예시 출력 1

We love Java Programming. 찾을 수 없습니다! 잘못된 명령입니다! We LOVE Java Programming. 종료합니다.

힌트

StringBuffer의 indexOf()와 replace()메소드 사용

예)

String text = scanner.nextLine(); // 한 라인을 문자열로 읽는다. 문자열 = "우리는 love Java Programming." 가정

StringBuffer sb = new StringBuffer(text);

....

String [] tokens;

//token[0] = "우리는" 이라고 가정

int index = sb.indexOf(tokens[0]);// index = 0, 즉 문자열에서 "우리는"이 시작되는 인덱스 위치,만약에 token[0]의 내용이 sb에 없으면 -1이 반환됨, 즉 index = -1

// tokens[1] = "We" 이라고 가정

sb.replace(index, index+tokens[0].length(), tokens[1]); // index 위치부터 tokens[0] 문자열의 길이만큼을 tokens[1]에 있는 문자열로 변환


<추가 힌트>

String [] tokens = cmd.split("!"); // 문자열이 "우리는!" 인경우에는 tokens.length 는 2임. "!We" 인경우도tokens.length 는 2임.

따라서

if(tokens[0].length() == 0 || tokens[1].length() == 0) {

System.out.println("잘못된 명령입니다!");

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 탈퇴한 사용자
    탈퇴한 사용자21.04.08

    소스입니다.

    import java.util.Scanner; public class ScannerTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print(">>"); String text = scanner.nextLine(); StringBuffer sb = new StringBuffer(text); String cmd = null; while (true) { System.out.print("명령: "); cmd = scanner.nextLine(); if ("그만".equals(cmd)) { System.out.println("종료합니다."); break; } String[] tokens = cmd.split("!"); if (tokens.length != 2 || tokens[0].length() == 0 || tokens[1].length() == 0) { System.out.println("잘못된 명령입니다!"); continue; } int index = sb.indexOf(tokens[0]); if (index < 0) { System.out.println("찾을 수 없습니다!"); continue; } sb.replace(index, index + tokens[0].length(), tokens[1]); System.out.println(sb.toString()); } } }