Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

룰루랑랑

[Java] String 텍스트 처리 1 - 텍스트 자르기 본문

Java 레시피

[Java] String 텍스트 처리 1 - 텍스트 자르기

개발토끼 2016. 11. 23. 21:18

안녕하세요. 룰루랑랑입니다.


오늘은 Java 프로그래밍에서 많이 쓰는 String 텍스트를 처리 하는 방법에 대해서 공부를 했습니다. 


그래서 기록의 일환으로 Java 텍스트 자르기와 비교하기를 포스팅해보겠습니다.

public class MyClass{
    public static void main(String[] args){
        // Test
    }
}


우선 위와 같이 Java Console의 메인 함수를 구현된 상태에서 진행하도록 하겠습니다. 



1. 텍스트 자르기 - substring(int beginIndex)


자바에서는 텍스트를 자르기 위해 substring이라는 메소드를 이용해야 합니다. 

public String substring(int beginIndex)

위 코드는 Java 내부에서 볼 수 있는 내용인데 String 관련 메소드들 중 하나입니다. 


파라미터(인자)의 값을 Integer(정수) 값을 입력이 필요합니다. 


여기서 입력될 정수는 바로 텍스트의 순서 값을 뜻합니다. 


ABCDE

만약 위와 같이 ABCDE 라는 텍스트가 있을 경우 A 부터 E 까지의 순번을 매기면 다음과 같습니다.



눈치가 빠르신 분들은 아실거에요. 첫 번째 문자의 순번이 0번인 것을요. 


프로그래밍에서는 어떤 순서(Index)를 매길 때는 반드시 0 값부터 시작한답니다. 


만약 substring 메소드를 썼을 때 1을 입력하게 되면 출력 결과는 아래와 같이 나옵니다.


BCDE


그래서 원하는 텍스트 중 앞에 몇자리 빼고 나머지를 출력하고 싶을 땐

public String substring(int beginIndex)

쓰면됩니다. ㅎㅎㅎ


# 전체 진행 소스 코드 





2. 텍스트 자르기 - substring(int beginIndex, int endIndex)


이번엔 텍스트 중 특정 부위만 가져오고 싶을 때는 substring 중에서 파라미터를 2개나 받는 substring 메소드를 사용해야 합니다. 

public String substring(int beginIndex, int endIndex)

이 메소드는 앞서 사용한 메소드와 달리 끝의 값을 명시하도록 하고 있습니다. 


ABCDE

앞서 사용한 예와 동일하게 진행하도록 하죠. 


만약, 위의 텍스트 ABCDE 중 BCD만 빼고 싶을 경우 어떻게 해야 할까요?


시작 Index와 끝 Index 값을 substring 메소드에 넣어주면 됩니다.


일단 B부터 시작해야 하니 시작 Index의 값은 1이 될 것입니다.


그리고 끝은 D까지 출력되어야 하므로 끝 Index의 값은 4가 되어야 합니다. 

public String substring(1, 4)


이 부분에서 약간의 의문이 생기시는 분들이 있을 겁니다. 



D까지 출력하려면 3을 써야 하는 것이 아닌가 하구요. ㅎㅎㅎ


substring의 내부 모습을 보면 약간 이해가 가실 수 있습니다. 


내부 모습을 보기 전에 먼저 이유를 설명을 드리면 다음과 같습니다.


이유 : substring 메소드 내부에서 endIndex와 beginIndex 값을 빼기(-) 연산을 합니다.


만약 substring(1,3)을 하게 되면 3-1 연산 시 2가 출력되므로 출력되는 텍스트의 문자 수는 2개로 제한이 걸리게 되는 거죠. 


결국 BC만 출력되게 됩니다. 


그럼 Java substring 메소드 내부 로직을 통해서 보시죠. 



String.java 코드의 일부입니다. 1,965번째 줄에 보시면 빼기 연산을 하는 것을 볼 수 있을 겁니다.


이것 때문에 endIndex 값은 내가 출력하고 싶은 문자열 Index에서 +1 을 해준 값을 적어줘야 정상적으로 출력이 되는 것이죠. 


대학교 교수님들도 그렇고 학원 선생님들도 그렇고 이 부분에 대해서  Java 내부 로직을 보여주면서 설명해주시는 분들이 잘 없더라구요. 


어쨋든 위 코드를 보면 쉽게 이해하실 수 있겠죠? ㅎㅎㅎ


# 전체 진행 소스 코드 



이렇게 해서 오늘 Java String에 관하여 한 가지를 배우게 되었네요. 


다음 시간에도 String 메소드들을 통해 텍스트 처리하는 방식에 대해서 공부하고 포스팅을 하도록 하겠습니다. 


읽어주셔서 감사합니다.