본문 바로가기
Programming/Java, Spring

[Java 기초문법] 텍스트 다루기 | creating strings, 대소문자 변환, isEmpty vs isBlank, replace, strip(), charAt(), contains()

by Renechoi 2022. 10. 17.

[Java 기초문법] by Professional Java Developer Career Starter: Java Foundations @ Udemy

 

 

Creating Strings 

 

스트링을 만드는 방법 

 

public class LearnStrings {
    public static void main(String[] args) {
        String fruit = "apple";
        String vegetable = new String("broccoli");


         }
}

 

첫번째 = asks the os to give it some memory of this string. 메모리를 할당시킴 

 

storing a reference. 

 

스트링 literal이라고 하는 이것을 입력하면 자바는 all the string liberal을 검색한다. 만약 같은 게 있으면 address를 리턴해서 같이 저장하는 방식 (liberal은 operator 방식이 아닌 것) 

 

따라서 사실상 같은 주소로 저장

 

 

 

 

2번째 = 같은 str이라도 another space를 할당한다 = a new address in memory. 

 

 

 

 

 

따라서 fruit , anotherFruit 은 pointing the same address 

2번째 것은 different 

 

 

검증하는 방법 

 

 

 

 

 

 

 

 


 

 

Upper and Lower Casing

 

 

사용가능한 함수 보는 단축키 ctrl+space 

 

자바의 경우 Unicode를 Full 지원한다. 

 

움라웃U 같은 것들을 쓰려면 locale 변수를 통해 region을 정해줄 수 있다. 

 

 

 


 

Strings : Blank or Empty ? 

 

 

isEmpty =

// if the length of the string is zero 

 

 

 

isBlank = 

// if string actually contains something 

 

 

length를 검색하거나 할 때 실제로 있는지를 찾으려면 isBlank를 쓰는 것이 더 사용 용도에 맞다 

 

 

 

 


 

 

 

 

Replacing String 

 

 

 

 

String myText ="here's my awesome firf text";
System.out.println(myText.replace("firf","nice"));

 

firf를 nice로 replace한다 

 

 

 

 

이때 위치나 개수는 상관없지만 대소문자는 구분한다 

 

 

 

 

 

 

 

그런데 relace 함수도 다른 버전이 있을 수 있다. 

 

 

 

 

 

 


 

 

 

 

 

Strip()

 

스페이스를 지운다 

 

 

 

 

 

 

public class LearnStrings {
    public static void main(String[] args) {
            String firstName = "  Jake   ";
            System.out.format("'%s'", firstName.strip());


         }
}

 

 

 

 

 

strip에 다양한 변형이 있다. 

 

 

leading이나 trailing을 쓰면 앞이나 뒤만 지워짐 

 

 

stripIndent()는 

 

자바에서 multi line을 쓸때 indent를 지워주는 것인데 IDE에서 이미 지워줘서 기능을 보여줄 수 없다 

 

선으로 이미 맞춰주고 있음 

 

 

 

strip의 기능을 메소드로 구현해보면 

replace를 쓰고 지울것과 빈칸을 넣는 것과 마찬가지이다. 

 

 

 

 

같은 결과 리턴 

 

 


 

charAt()

 

string의 위치를 찾아준다 

 

 

public class LearnStrings {
    public static void main(String[] args) {
        String myText ="Apples";
        System.out.println(myText.charAt(3));

    }

}

 

 

리턴 l 

 

 

 

 


 

compareTo()

 

비교해서 숫자를 리턴한다 

 

 

-1 리턴 

 

 

 

이때 로직은 alphabetical order for latin word = 아스키코드로 반환해서 차이를 비교하여 리턴 

 

 

같을 경우는 0을 리턴한다 

 

15를 리턴하는데 이때 aaple보다 Aardvark가 더 뒤에 나오는 알파벳 오더를 갖기 때문에 양수를 리턴 

 

 

그렇다면 Aaple과 aaple은 ? 

 

 

 

함수명을 ignore로 바꿔주면 0으로 다시 리턴 

 

 

 

 

 

영어 말고 다른 언어도 비교한다. 

 

 

public class LearnStrings {
    public static void main(String[] args) {
        String firstword = "가나";
        String secondword = "나가";

        System.out.println(firstword.compareTo(secondword));

    }

}

 

 

 

 

 

 

만약 

 

 

public class LearnStrings {
    public static void main(String[] args) {
        String firstword = "가나";
        String secondword = "가";

        System.out.println(firstword.compareTo(secondword));

    }

}

 

 

두개를 비교한다면 

 

second word가 알파벳 순서에서 가 다음에 바로 오기 때문에 1을 리턴한다 

 

 

 

 


 

contains()

 

 

리턴 whether or not string contains input 

 

 

 

 

 

public class LearnStrings {
    public static void main(String[] args) {

        String myText = "Four score and seven years ago";
        System.out.println(myText.contains("seven"));


    }
}

 

true를 리턴 

 

정확히 일치해야 true를 리턴한다 

 

 

 

 

 

 

반응형