아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
화산 아이콘 11
비트코인 ETF 순유입 전환
아하

생활

생활꿀팁

도덕적인가젤89
도덕적인가젤89

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

설명

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("잘못된 명령입니다!");

    1개의 답변이 있어요!
    • 탈퇴한 사용자
      탈퇴한 사용자

      소스입니다.

      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()); } } }