[Java] 자바 기초 Day2

배배토·2024년 12월 6일

소프트웨어관련 전공 >>3학년<<이지만 아직 자바 입출력도 제대로 못하는 머저리의 자바 기초 학습기

[ 문자열관련 문제 풀기 ]

1. 문자열 입력받고 하나씩 출력하기

- 접근방식

나는 멍청해서 println만 사용하면 "abcde"로 입력받은 String을 a\b\c\d\e로 출력할 수 있을거라 생각했다 ㅋㅋ

......#왜안되노

- 맞는 풀이법

println을 쓰긴 쓰는데, 문자들 사이에 어떻게 Enter를 칠 것이냐!!
-> 문자열의 길이만큼 for문을 돌려 각 index에 매핑된 문자를 하나씩 \n으로 출력해줌. 이때 index에 매칭된 문자는 charAt(i)를 사용

2. 문자열 겹쳐쓰기

- 접근방식

.....아무리 고민해보아도 (1분도 고민안해봄) 어떻게 풀지 감이 안잡혀서 일단 되는대로 때려적어보았다.

import java.util.Scanner;

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        Scanenr sc = new Scanner(System.in);
        my_string = sc.next();
        Scanenr sc = new Scanner(System.in);
        overwrite_string = sc.next();
        Scanenr sc = new Scanner(System.in);
        s = sc.next();
        
        String answer = "";
        
        int m = my_string.length();
        int l = overwrite_string.length();
        
        for(int i= 0; i<s; i++){
            answer += my_string[i];
        }
        for(int s; s<l; s++){
            answer += overwrite_string[s]; 
        }
        
        return answer;
    }
    public static void main (String[]args){
        System.out.println(answer);
    }
}

ㅋㅋㅋ
ㅋㅋㅋㅋㅋ
음 그니까 s를 기준으로 my_string[s] 까지 answer에 더하고 overwrite_string[s]부터 overwrite_stringlength()까지 answer에 더하면 될거라고 생각했음..

후냐냐 왜 에러가 이렇게 많이 나죵?

- 맞는 풀이법

.substring() 메소드를 써야했던거시다.

import java.util.Scanner;

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = my_string.substring(0, s) + overwrite_string + my_string.substring(s + overwrite_string.length());
        return answer;
    }
    public static void main (String[]args){
    	//Scanner는 main에서 작성해야한다 !! 
        Scanner sc = new Scanner(System.in);
        
        String my_string = sc.next();
        String overwrite_string = sc.next();
        int s = sc.nextInt();
        
        //Solution 클래스의 인스턴스를 생성하여 solution 메소드를 호출
        //solution 메소드는 인스턴스 메소드이기 때문에 객체를 생성해야 호출이 가능
        Solution solution = new Solution();
        
        String result = solution.solution(my_string, overwrite_string, s);
        System.out.println(result);
    }
}

++ .substring() 메소드

//추출을 시작할 위치의 인덱스(0부터 시작).
//아래와 같은 코드는 beginIndex부터 끝까지 추출됨
String substring(int beginIndex)

//추출을 끝낼 위치의 바로 앞 인덱스(끝 인덱스는 포함되지 않음. 그니까 endIndex-1까지 추출됨)
String substring(int beginIndex, int endIndex)

안녕

profile
울며코드먹기..쩝쩝ㅂ

2개의 댓글

comment-user-thumbnail
2024년 12월 6일

꿀팁! 코드로 표현할 때, ```java 치면 자바 형식으로 예쁘게 색칠된 코드를 만나볼 수 있습니다.

1개의 답글