티스토리 뷰

A. 텍스트에서 특정 문자열 찾기 

 

코틀린

val str = "Kiu!Project!!"
val search = "!"

val indexOf1 = str.indexOf(search)
val indexOf2 = str.indexOf(search, 4)
val indexOf3 = str.lastIndexOf(search)

str.indexOf(search)
> 문자열 내에서 첫번째 특정 문자의 인덱스 반환
 
str.indexOf(search, 4)
> 문자열 내에서 4번째 문자열 이후 첫 특정 문자의 인덱스 반환
 
str.lastIndexOf(search)
> 문자열 내에서 마지막 특정 문자의 인덱스 반환

 

1) 문자열 비교하기
    [boolean] .equals(Object anObject)  
    - 문자열 비교하여 동일하면 true

    [boolean] .equalsIgnoreCase(String anotherString)
    - 문자열 비교(대소문자 구분안함)하여 동일하면 true

2) 문자열에서 byte값 얻기 : 통신환경에서는 byte값을 많이 사용하게 된다.
    [byte[]] .getBytes()
    - 문자열에서 byte 배열을 얻는다.

    [byte[]] .getBytes(String charsetName)
    - 문자열에서 byte 배열을 원하는 charset으로 변환하여 얻는다.

3) 문자열 포함여부 찾기 : 포함여부 확인, 문자열을 자를 때 또는 특정부분만 이용하고자할 때 사용한다.
    [int] .indexOf(int ch)
    [int] .indexOf(String str)
    - 문자열에서 ch/str의 처음 위치를 알려준다.

    [int] .indexOf(int ch, int fromIndex)
    [int] .indexOf(String str, int fromIndex)
    - 문자열에서 fromIndex 이후 ch/str이 처음 존재하는 위치를 알려준다.   

    [int] .lastIndexOf  : indexOf와 동일한 4가지 형이 있다.
    - 문자열에서 ch/str의 마지막 위치를 알려준다.

    [boolean] .matches(String regex)
    - 문자열에서 정규식을 이용하여 문자포함여부를 알려준다.

    [boolean] .startsWith(String prefix)
    [boolean] .endsWith(String suffix)
    - 문자열이 해당하는 문자열로 시작(끝)하는지 알려준다.

4) 문자열로 변환하기
    [String] .valueOf(Object obj) : 문자열로 변환해줌.

5) 문자열 자르기
    [String] .substring(int beginIndex) : beginIndex이후의 문자열을 반환함.
    [String] .substring(int beginIndex, int endIndex) : 두 Index 사이의 문자열을 반환함.
    - 문자열에서 원하는 만큼의 문자열을 잘라서 반환한다.

    [String[]] .split(String regex) 
    [String[]] .split(String regex, int limit) 
    - 구분자를 이용해서 문자열을 나눈다.

 

B. Activity 에서 SpannableString 클래스를 사용해서 밑줄 추가하는 방법

 

자바

SpannableString content = new SpannableString(TextView.getText().toString()); 

// 저는이미 TextView 에 String 을 넣었기 때문에 위와 같이 TextView.getText().toString() 했음
content.setSpan(new UnderlineSpan(), 0, content.length(),0);
TextView.setText(content); 

 

코틀린

val content = SpannableString(tvEditTime.text.toString())
content.setSpan(UnderlineSpan(), 0, content.length, 0)
tvEditTime.text = content

 

 

split() 함수

String colorPower = "red:orange:yellow:green";
String[] colorPowers = colorPower.split(":");

위와 같은 경우에서  

colorPowers[0] == "red"
colorPowers[1] == "orange"
colorPowers[2] == "yellow"
colorPowers[3] == "green"

 

 

하지만 안드로이드에서  "*", ".", "$", 등등의

 

특정 특수문자에 대하여 이 함수가 작동하지 않는 것을 확인하였다.

이럴 땐 간단하게 앞에 \\를 붙혀주면 된다.

 

String colorPower = "red.orange.yellow.green";
String[] colorPowers = colorPower.split("\\.");
colorPowers[0] == "red"
colorPowers[1] == "orange"
colorPowers[2] == "yellow"
colorPowers[3] == "green"

 

replace() 함수

String colorPower = "red:ornage:yellow:green";
String colorPowerReplaced = colorPower.replace(":","|");
olorPowerReplaced = "red|orange|yellow|green";
댓글
최근에 달린 댓글
글 보관함
«   2025/01   »
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
Total
Today
Yesterday
    뽀로로친구에디
    최근에 올라온 글