파이썬은 문자열을 다룰때 다양한 형태로 문자열을 다룰 수 있습니다. C나 Java같은 언어에서는 문자열을 쌍따옴표로 둘러싸서 문자열을 표현하지만 파이썬은 ', ", ''' 로 둘러싸서 문자열을 표현할 수 있죠. 이렇게하는 이유는 ', " 가 문자열에 글자로 표현될 때 문자열의 종료나 시작으로 인식하지 않게 하기 위함입니다.

str1 = 'python'
str2 = "python"
str3 = '''python'''

print (str1, str2, str3)

str1 = '"python"'
str2 = "'python'"
str3 = '''"python"'''

print ( str1, str2, str3)
python python python
"python" 'python' "python"

 

이제부터 파이썬의 문자열에 대해서 알아보도록 하겠습니다. 

문자열 포맷

- 포맷 문자를 통한 문자열 포맷

C와 같이 문자열에 다른 데이터를 포함시키려면 format 문자를 사용해서 정수든, 글자든 입력받을 수가 있죠.

포맷 문자 설명
%d 10진수 정수 (Decimal)
%c 문자 (Character)
%f 부동 소수 (Floating Point)
%o 8진수 정수 (Octal)
%x 16진수 정수 (Hexadecimal)
%s 문자열 (String)
%% % 문자

 

C에서 지원하는 무자열 형태의 format은 거의다 지원한다고 보시면됩니다. 그렇기 때문에 아래의 링크를 통해서 더 많은 문자열 포맷을 활용하는 방법을 알아보시기 바랍니다.

reakwon.tistory.com/169

 

[C언어] 출력 형식(format) 총정리 (Feat. sprintf, fprintf) - 일정한 간격으로 문자열 출력 예제 까지

C언어의 다양한 출력 문자들 C언어에서 다양한 출력 형식을 지원합니다. 우리가 너무나 잘 알고 있는 부호있는 정수형은 %d, 문자열 출력은 %s 등이 그 출력형식인데요. 오늘은 자세하게 한번 총

reakwon.tistory.com

 

형식을 지정할 데이터는 문자열 끝 %를 이용해서 나열해줍니다.

print ('구구단 2단')
for i in range(10):
    print ('%d * %d = %d' % (2, i, 2*i) )
구구단 2단
2 * 0 = 0
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

 

- format함수를 통한 문자열 포맷

이와 같은 방식은 우선 자료형에 따른 포맷 문자를 알고있어야하는 단점이 있습니다. 파이썬 3부터는 포맷을 알고 있지 않아도 사용할 수 있는 방법은 format함수를 사용할 수 있습니다. 여기서 중괄호를 이용합니다. 숫자를 입력하여 차례대로 입력받을 수도 있고, 명시적으로 이름을 지정해서 사용할 수도 있습니다.

str = 'str.{} example'.format('format')
print(str)
                                                #  {0}      {1}        {2}          {3}
str = 'SELECT {0} FROM {1} WHERE {2} = {3}'.format('*', 'accounts', 'email', 'reakwon@gmail.com')
print (str)

str = 'name : {name}, age : {age}'.format(name='kim',age=22)
print (str)
str.format example
SELECT * FROM accounts WHERE email = reakwon@gmail.com
name : kim, age : 22

 

- f String을 사용한 문자열 포맷

문자열을 저장할때 가장 맨 앞에 f를 준 후 변수명을 그대로 문자열에 중괄호로 입력하면 그 변수명의 데이터가 그대로 문자열에 입력됩니다. f는 format의 약자라는 점은 참고해주세요. 이 f string은 파이썬 3.6부터 지원합니다.

name = 'shin'
age = 22
score = 80

result = f'name : {name}, age : {age}, score : {score}'
print (result)
name : shin, age : 22, score : 80

 

산술 연산도 할 수 있습니다.

a = 10
b = 20

fstr = f'{a} * {b} = {a*b}, {a} + {b} = {a+b}'
print (fstr)
10 * 20 = 200, 10 + 20 = 30

 

함수의 반환값도 쓸수 있죠.

def mult(a, b):
    return a*b

def add(a, b):
    return a+b

a = 5
b = 9
fstr = f'{a} * {b} = {mult(a,b)}, {a} + {b} = {add(a,b)}'
print (fstr)
5 * 9 = 45, 5 + 9 = 14

 

문자열 메소드

문자열 메소드는 엄청 많은데, 그 중에서 몇가지 문자열 메소드를 알아보도록 하겠습니다. 문자열은 아래의 문자열을 사용해보지요.

paul_rand = 'Do not to be original, just-try-to-be-good.'

 

- 문자열 길이 : len

문자열 내장 메소드는 아니지만 길이를 알고자 하는 경우 len 내장 함수를 쓰면 됩니다.

print(len(paul_rand))
43

 

- 문자수 세기 : count

문자나 문자열의 수를 새려면 count 메소드를 사용하여 확인할 수 있습니다.

print (paul_rand.count('t'))        #t문자 세기
print (paul_rand.count('to'))      #to 문자열 세기
5
2

 

- 대소문자로 변경 : upper, lower, casefold

알파벳을 모두 소문자로 변경하려면 lower 메소드 사용하면 되는데 소문자로 변경하는 메소드는 casefold라는 메소드도 있습니다. 반대로 모두 대문자로 변경하려면 upper를 사용하면 됩니다.

print (paul_rand.upper())   #모두 대문자로 변경
print (paul_rand.lower())   #모두 소문자로 변경
print (paul_rand.casefold())
DO NOT TO BE ORIGINAL, JUST-TRY-TO-BE-GOOD.
do not to be original, just-try-to-be-good.
do not to be original, just-try-to-be-good.

 

- 문자열 분리 : split

문자열을 공백, 또는 지정된 나누려고 구분된 구분자에 따라서 문자열을 쪼개고 싶다면 split 메소드를 사용할 수 있습니다. 인자를 넣어주지 않는다면 공백을 기준으로 나누고, 지정한 문자열을 넘겨주면 그 문자열을 기준으로 문자열을 나눕니다. 쪼개어진 문자열들은 리스트 형태로 넘겨줍니다.

tokens = paul_rand.split()
print (tokens)

tokens = paul_rand.split('-')
print (tokens)
['Do', 'not', 'to', 'be', 'original,', 'just-try-to-be-good.']
['Do not to be original, just', 'try', 'to', 'be', 'good.']

 

- 문자열 공백 지우기 : strip, lstrip, rstrip

문자열에 공백을 제거하려면 strip 메소드를 사용하면 됩니다. 특별히 왼쪽 공백은 lstrip, 오른쪽 공백은 rstrip을 사용하면 됩니다.

str = '  __name__  __main__    '

print (str.lstrip())    # 왼쪽 공백 제거
print (str.rstrip())    # 오른쪽 공백 제거
print (str.strip())     # 양쪽 공백 제거
__name__  __main__    
  __name__  __main__
__name__  __main__

 

- 문자열 위치 : find, index, rfind, rindex

문자열에서 특정 문자열이 어느 위치에 있는지 확인하려면 find와 index를 사용하면 됩니다. 이때 가장 첫번째로 등장한 위치를 반환합니다. find와 index의 차이점은 문자를 찾지 못할때는 에러를 발생시키느냐 마냐입니다. find는 못찾으면 -1을 반환하고 index는 에러를 발생시킵니다.

print ('o : ', paul_rand.find('o'))
print ('. : ', paul_rand.index('.'))
print ('original : ', paul_rand.find('original'))
print ('just : ' ,paul_rand.index('just'))

print ('6 :', paul_rand.find('6'))      #없는 문자열의 경우 -1 반환
print ('6 :', paul_rand.index('6'))     #없는 문자열의 경우 에러

o :  1
. :  42
original :  13
just :  23
6 : -1
Traceback (most recent call last):
  File "C:\Users\grjwu\PycharmProjects\pythonProject1\main.py", line 9, in <module>
    print ('6 :', paul_rand.index('6'))
ValueError: substring not found

 

또는 start와 end 인덱스를 지정하게 되면 그 부분에 대해서만 찾아오게 됩니다.

print (paul_rand.find('to',4,9))    # 글자위치 4부터 9 전까지 탐색
print (paul_rand.index('or',10,19)) # 글자위치 10부터 19 전까지 탐색
7
13

 

왼쪽이 아니라 오른쪽에서 찾아보고 싶다면 rfind와 rindex를 사용하면 됩니다. 이때 결과는 위의 index와 find와 동일하며 오류내는 것도 동일합니다.

good = 'good, good, good~'

print ('o : ', good.rfind('o'))
print ('g : ', good.rindex(','))
o :  14
g :  10

 

 

- 문자열 변경 : replace

특정 문자열을 변경하고 싶다면 replace메소드를 사용하여 바꿀 수 있습니다.

print (paul_rand.replace('to','TO'))
Do not TO be original, just-try-TO-be-good.

 

- 특정 문자열로 시작하느냐 끝나느냐 - startswith, endswith

우리가 지정한 문자열로 시작하느냐를 알아보고 싶다면 startswith, 끝이 나는가를 알아보려면 endswith 메소드를 사용하면 됩니다. 지정된 문자열로 시작, 끝이 나면 True를, 아니면 False를 반환합니다.

print (paul_rand.startswith('Do'))
print (paul_rand.endswith('.'))

print (paul_rand.startswith('The'))
print (paul_rand.endswith('!'))
True
True
False
False

 

- 문자열 삽입 : join

특정 문자열을 문자마다 삽입하고 싶다면 join을 사용하면 됩니다. 글자마다 우리가 지정한 문자열이 삽입되고 만약 단어마다 문자열 삽입을 원한다면 리스트 형태의 문자열 리스트를 전달해주면 됩니다.

 

str = 'ABCDE'
print ("=".join(str))

str = ['Apple','Banana','Cherry']
print (', '.join(str))
A=B=C=D=E
Apple, Banana, Cherry

 

- 탭 간격 조정 : expandtabs

탭의 간격을 조정하는 메소드는 expandtabs입니다. 

str = "h\te\tl\tl"
print (str)
print (str.expandtabs(2))
print (str.expandtabs(4))
print (str.expandtabs(10))
h	e	l	l
h e l l
h   e   l   l
h         e         l         l

 

여기까지 파이썬 문자열의 활용방법과 메소드 들에 대해서 알아보았습니다. 여기서 소개하지 않은 메소드도 많이 있으므로 그때 그때 구글링하여 사용하시기 바랍니다.

반응형
블로그 이미지

REAKWON

와나진짜

,

 

 

StringTokenizer

StringTokenizer 클래스는 문자열을 우리가 지정한 구분자로 문자열을 쪼개주는 클래스입니다. 그렇게 쪼개어진 문자열을 우리는 토큰(token)이라고 부릅니다.

 

StringTokenizer를 사용하기 위해서는 java.util.StringTokenizer를 import해야합니다. 사용법은 굉장히 쉽습니다. 사용하는 메소드도 몇개 없는데요. 자주 사용하는 메소드 설명과 예제를 통해 이 클래스를 어떻게 사용하는지 살펴봅시다. 

 

생성자(Constructor)

생성자 설명
public StringTokenizer(String str);

절달된 매개변수 str을 기본(default) delim으로 분리합니다. 기본 delimiter는 공백 문자들인 " \t\n\r\t"입니다. 

public StringTokenizer(String str,String delim); 특정 delim으로 문자열을 분리합니다.

public StringTokenizer(String str,String delim,boolean returnDelims);

str을 특정 delim으로 분리시키는데 그 delim까지 token으로 포함할지를 결정합니다. 그 매개변수가 returnDelims로 true일시 포함, false일땐 포함하지 않습니다.

 

int countTokens() 

남아있는 token의 개수를 반환합니다. 전체 token의 갯수가 아닌 현재 남아있는 token 개수입니다.

 

boolean hasMoreElements(), boolean hasMoreTokens()

다음의 token을 반환합니다. StringTokenizer는 내부적으로 어떤 위치의 토큰을 사용하였는지 기억하고 있고 그 위치를 다음으로 옮깁니다. 두가지 메소드는 모두 같은 값을 반환합니다.

 

Object nextElement(), String nextToken()

이 두가지 메소드는 다음의 토큰을 반환합니다. 두가지 메소드는 같은 객체를 반환하는데 반환형은 다르네요. nextElement는 Object를, nextToken은 String을 반환하고 있습니다.

 

예제

이제 몇가지 예제를 통해서 더 자세히 알아보도록 합시다.

 

0) String 클래스에 있는 split 메소드 이용

public static void main(String[] ar){
	String str="this string includes default delims";
	System.out.println(str);
	System.out.println();
		
	System.out.println("==========using split method============");
	String []tokens=str.split(" ");
		
	for(int i=0;i<tokens.length;i++){
		System.out.println(tokens[i]);
	}
}

String클래스의 메소드인 split 메소드를 사용하여 StringTokenizer를 흉내낼 수 있습니다. split이 반환하는 값은 String 배열입니다.

this string includes default delims

==========using split method============
this
string
includes
default
delims

 

1) Default Delim을 이용

public static void main(String[] ar){
	String str="this string\tincludes\ndefault delims";
	StringTokenizer stk=new StringTokenizer(str);
	System.out.println(str);
	System.out.println();
		
	System.out.println("total tokens:"+stk.countTokens());
	System.out.println("================tokens==================");
	while(stk.hasMoreTokens()){
		System.out.println(stk.nextToken());
	}
	System.out.println("total tokens:"+stk.countTokens());
}

코드의 while문을 보면 토큰이 있는지 확인한 후 있다면 다음 토큰을 가져옵니다. 이렇게 하나씩 토큰을 소비한다고 보면되는데, 이런 패턴이 StringTokenizer를 사용하는 가장 일반적인 사용방법입니다.

실행결과

this string includes
default delims

total tokens:5
================tokens==================
this
string
includes
default
delims
total tokens:0

 

 

 

 

2) 특정 delim을 이용

public static void main(String[] ar){
	String str="this-=string-includes=delims";
	StringTokenizer stk=new StringTokenizer(str,"-=");
	System.out.println(str);
	System.out.println();
		
	System.out.println("total tokens:"+stk.countTokens());
	System.out.println("================tokens==================");
	while(stk.hasMoreTokens()){
		System.out.println(stk.nextToken());
	}
	System.out.println("total tokens:"+stk.countTokens());
}

특정 delim으로 문자열을 분리하는 예제입니다. 여기서는 "-"와 "="으로 분리를 했네요.

실행결과

this-=string-includes=delims

total tokens:4
================tokens==================
this
string
includes
delims
total tokens:0

2-1) String의 split과 비교

public static void main(String[] ar){
	String str="this-=string-includes=delims";
	System.out.println(str);
	System.out.println();
		
	String[] tokens=str.split("-=");
	System.out.println("total tokens:"+tokens.length);
	System.out.println("================tokens==================");
		
	for(int i=0;i<tokens.length;i++){
		System.out.println(tokens[i]);
	}
		
}

split을 이용하면 조금 다른 결과가 나옵니다. split은 정확히 "-="으로 문자를 쪼개기 때문에 "this-=string-includes=delims"에서 빨간 부분을 기준으로 쪼개는 겁니다. 결과를 확인해보세요.

실행결과

this-=string-includes=delims

total tokens:2
================tokens==================
this
string-includes=delims

3) delim까지 포함

public static void main(String[] ar){
	String str="this-string-includes=delims";
	StringTokenizer stk=new StringTokenizer(str,"-=",true);
	System.out.println(str);
	System.out.println();
		
	System.out.println("total tokens:"+stk.countTokens());
	System.out.println("================tokens==================");
	while(stk.hasMoreTokens()){
		System.out.println(stk.nextToken());
	}
	System.out.println("total tokens:"+stk.countTokens());
}

 위의 예제의 생성자에서 세번째 인자를 true로 전달했을때의 예제입니다. 이때 "-"와 "="를 토큰으로 포함하게 됩니다. 이 예제에서 true를 전달하지 않고 false로 전달한다면 위의 예제와 같은 결과가 나오게 됩니다.

실행결과

this-string-includes=delims

total tokens:7
================tokens==================
this
-
string
-
includes
=
delims
total tokens:0

 

이렇게 StringTokenizer의 사용방법을 알아보았습니다. 알아두면 문자열을 조금 더 유연하게 다룰 수 있겠네요.

 

 

 

 

반응형
블로그 이미지

REAKWON

와나진짜

,

자바에서 문자열을 다루기 위해서는 String 클래스의 메소드를 사용합니다. 이번 포스팅에서는 String 메소드를 설명하고 간단한 사용법울 알아보도록 하겠습니다.

 

int length()

문자열의 길이를 반환합니다. C언어로 치면 strlen과 같은 메소드겠네요. 사용법이 너무 간단하므로 예를 보이지는 않겠습니다.

 

String substring(int beginIndex)

String substring(int beginIndex, int endIndex)

substring 메소드는 beginIndex부터 문자열끝까지의 문자열을 반환합니다. 만약 끝을 가리키는 endIndex를 사용한다면 문자열의 특정 구간의 문자열을 반환합니다. 아래는 사용 예를 보여줍니다.

 

String str="AABBCCDD";
System.out.println(str.substring(2));
System.out.println(str.substring(2, 4));

"AABBCCDD"의 substring(2)는 처음 나오는 B의 자리를 인자로 전달합니다. 문자열의 첫번째 인덱스는 0부터 시작한다는 것을 잊지마세요. 그러니 처음 나오는 A의 인덱스는 0입니다. 결과는 B부터 문자열의 끝까지 새로운 문자열을 반환합니다.

또 substring(2,4)는 2번째 인덱스부터 4번째 인덱스 전까지 새로운 문자열을 반환합니다. 주의해야할 것은 4번 인덱스 앞까지라는 것입니다. 그러므로 4번 인덱스의 문자는 포함되지 않습니다. 결과는 "BB"라는 문자열이 반환되겠네요.

 

위의 결과는 아래와 같습니다.

 

결과

BBCCDD
BB

 

 

 

 

char charAt(int index)

문자열에서 char 값이 필요할때 사용하는 메소드입니다. 인자 index는 문자열에서 한 문자를 뽑아낼 위치를 말합니다.

String str="AABBCCDD";
System.out.println(str.charAt(4));
System.out.println(str.charAt(str.length()-1));

 

예를 들어 "AABBCCDD"라는 문자열에서 4번째 인덱스의 char 값을 얻고 싶다면 인자로 4를 넣어주면 됩니다. 그렇다면 처음 나오는 'C'가 될겁니다. 또는 마지막 문자열의 문자를 추출해내고 싶다면 length() 메소드의 반환값에서 1을 뺀 값을 전달하면 제일 마지막 문자를 가져올 수 있습니다.

 

결과

C
D

 

String concat(String str)

문자열을 합치는 메소드입니다. str을 현재 문자열 뒤에 추가합니다. 사실 저는 별로 이 메소드를 사용하지는 않는데요. 자바에서는 문자열을 합칠때 + 연산으로 합칠 수 있기 때문이지요.

String str="AABBCCDD";
System.out.println(str.concat("EE"));
System.out.println(str+"EE");

 

아래에서 똑같은 결과를 볼 수 있지요.

 

결과

AABBCCDDEE

AABBCCDDEE

 

boolean contains(CharSequence s)

문자열에서 특정 문자열이 포함되어있는지 여부를 확인하려면 이 메소드를 사용하면 됩니다. 매개변수에 포함됐는지의 문자열을 전달하고 문자열이 포함되어 있다면 true, 포함되지 않았다면 false를 반환합니다.

 

String str="AABBCCDD";
System.out.println(str.contains("BC"));
System.out.println(str.contains("AD"));

"BC"는 "AABBCCDD"에 포함되어 있으므로 true를 반환할 것이고, "AD"라는 문자열을 포함되어 있지 않으니 false를 반환합니다.

 

결과

true
false

 

 

 

 

static String copyValueOf(char []data)

static String copyValueOf(char []data, int offset, int count)

이 메소드는 static 메소드입니다. char형 배열을 문자열로 변환할때 사용하는 메소드인데요. 그냥 char 배열을 전달하면 그 배열 자체를 문자열로 반환합니다.

특정 위치에서 몇개의 문자까지 문자열로 받고 싶다면 offset에 특정 문자열을 얻고 싶은 위치를, count에 몇개의 문자를 받을 지를 전달하면 되겠습니다.

char []charArray={'A','B','C','D','E','F'};
System.out.println(String.copyValueOf(charArray));
System.out.println(String.copyValueOf(charArray,2,4));		

 

결과를 보면 직관적으로 이 메소드가 어떤 기능을 하는지 알 수 있을 겁니다.

 

결과

ABCDEF
CDEF

 

String[] split(String regex)

String[] split(String regex, int limit)

정규표현식을 기준으로 문자열을 쪼갭니다. 정규표현식을 몰라도 됩니다. 만약 limit에 인자를 전달하면 그 limit까지만 문자열을 쪼갭니다.

 

String str="AABB__CCDD__EEFF";
String []arr=str.split("__");
for(int i=0;i<arr.length;i++)
	System.out.println(arr[i]);

"AABB__CCDD__EEFF"를 "__"로 분리시켜보면 세개의 문자열이 나옵니다. "AABB", "CCDD", "EEFF"가 그것들이죠. 이것은 한가지 예이므로 쉼표로 분리하고 싶다면 쉼표로 분리할 수도 있습니다.

 

결과

AABB
CCDD
EEFF

 

String toLowerCase()

String toLowerCase(Locale locale)

String toUpperCase()

String toUpperCase(Locale locale)

문자열을 전부 소문자 또는 전부 대문자로 변환된 문자열을 얻고 싶을 때 위의 메소드를 사용하면 됩니다.

소문자로 변환된 문자열을 얻고 싶을때는 toLowerCase, 대문자로 변환된 문자열을 얻고 싶을때는 toUpperCase를 사용하면 되는 것이죠. 메소드 인자는 Locale은 사실 써본적은 없습니다. 인자없는 toLowerCase, toUpperCase로도 충분해 보입니다.

String str1="AABBCCDD";
String str2="ffgghhii";
System.out.println(str1.toLowerCase());
System.out.println(str2.toUpperCase());

 

"AABBCCDD"는 toLowerCase로 소문자로 출력하고, "ffgghhii"는 toUpperCase로 모두 대문자로 출력합니다.

 

결과

aabbccdd
FFGGHHII

 

 

int compareTo(String anotherString)

문자열을 사전순으로 비교합니다. 만약 anotherString이 사전순으로 앞에 등장할때는 양수를 반환하고 사전순으로 늦게 등장할때는 음수를 반환합니다. 만약 anotherString이 현재 문자열과 정확히 같다면 0을 반환하게 됩니다. 문자열을 비교할때는 equals를 주로 사용하는데요. 사전순으로 비교하고 싶을땐 compareTo를 사용하면 됩니다.

 

String str1="BCD";
String str2="ABC";
String str3="BCD";
String str4="CDE";
System.out.println(str1.compareTo(str2));
System.out.println(str1.compareTo(str3));
System.out.println(str1.compareTo(str4));

 

"ABC"는 "BCD" 기준으로 사전상 앞에 등장하니까 양수, "CDE"는 "BCD" 기준으로 사전상 뒤에 등장하니까 음수가 반환됩니다. str1과 str3은 문자열이 같으므로 0이 반환됩니다.

 

결과

1
0
-1

 

 

 

 

int compareToIgnoreCase(String str)

만약 소문자, 대분자를 무시하고 비교하고 싶을때는 이 메소드를 사용하면 됩니다. 원래 "ABC"와 "abc"를 compareTo 메소드로 비교하면 0이 반환되지 않습니다만 이 메소드를 사용해서 비교한다면 0이 반환됩니다.

String str1="abc";
String str2="ABC";
String str3="abc";
String str4="aaa";
System.out.println(str1.compareToIgnoreCase(str2));
System.out.println(str1.compareToIgnoreCase(str3));
System.out.println(str1.compareToIgnoreCase(str4));

 

str4와 비교하는 것을 제외하고는 0을 반환하겠군요.

 

결과

0
0
1

 

 

boolean equals(Object anObjec)

boolean equalsIgnoreCase(String anotherString)

사전순으로 비교할 필요없이 단순히 문자열이 같은지 다른지 비교할때는 이 메소드를 씁니다. 역시 대소문자를 구분하지 않는다면 equalsIgnoreCase를 사용하면 됩니다. 같다면 true, 다르면 false를 반환합니다.

 

 

static String format(String format, Object ...args)

특정 format으로된 문자열을 얻고 싶을때 사용하는 메소드입니다. C언어에서 이것과 비슷한 기능을 하는 sprintf가 되겠네요. 

String str=String.format("%d+%d=%d", 1,2,1+2);
System.out.println(str);

 

C언어를 사용했던 분들에게는 조금 익숙한 메소드겠네요.

 

결과

1+2=3

 

boolean startsWith(String prefix)

boolean startsWith(String prefix, int toffset)

boolean endsWith(String suffix)

startsWith는 문자열이 prefix로 시작하는지 확인하는 메소드입니다. prefix의 비교 위치를 지정하려면 startsWith의 두번째 메소드를 사용하면 됩니다.

endsWith는 문자열이 suffix의 문자열로 끝나는지 확인하는 메소드입니다. suffix로 끝난다면 true, 다르게 끝나면 false를 반환합니다.

		
String str="ABCDEF";
System.out.println(str.startsWith("AB"));
System.out.println(str.startsWith("BC",1));
System.out.println(str.endsWith("EF"));
System.out.println(str.endsWith("EE"));

결과

true
true
true
false

 

 

 

 

 

String replace(char oldChar, char newChar)

String replace(CharSequence target, CharSequence replacement)

String replaceAll(String regex, String replacement)

String replaceFirst(String regex, String replacement)

문자나 문자열을 다른 문자나 문자열로 바꾸고 싶을때 사용하는 메소드입니다. 메소드 이름이 직관적이기 때문에 사용법을 익히는데 그리 어렵지 않을 겁니다. 또는 아래의 예를 보고 이해하면 되겠지요.

String str="AB-----AB-----AB";
String str1=str.replaceFirst("AB", "ab");
String str2=str.replace("AB", "ab");
String str3=str.replaceAll("AB", "ab");
String str4=str.replace('A', 'a');
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);

 

결과

ab-----AB-----AB
ab-----ab-----ab
ab-----ab-----ab
aB-----aB-----aB

 

사실 이 중에서도 자주 쓰이는거 외에는 별로 쓸 일이 없을 겁니다. 자주 필요한 몇가지만 기억해두면 될 것 같네요. 다음 포스팅에서도 String 메소드에 대해서 더 알아보도록 합시다.

반응형
블로그 이미지

REAKWON

와나진짜

,