6. String
C에서는 String은 특별한 type을 정의되지 않아 char의 pointer type 혹은 char의 array로 표현한다.
Java에서는 library에서 따로 String이라는 class를 따로 제공해준다.
1) 연산
1> add (+)
concatenate된다.
String location = "Java";
String greeting = "Hello " + location;
// greeting == "Hello Java"
2> 다른 type과의 add
string으로 다른 type이 형변환 일어난다.
int age = 42;
String output = age + " years"
// output == "42 years"
2) method
1> static method
- join : delimiter character를 기준으로 concatenate한다.
String names = String.join(", ", "Peter", "Paul", "Mary");
// names == "Peter, Paul, Mary"
2> Instance method
instance(object)에 따라 결과가 달라질 수 있다.
- substring(start, end) : start이상 end 미만의 index의 substring return
String greeting = "Hello, World!";
String location = greeting.substring(7,12);
// location == “World”
- split(delimiter) : string을 delimiter로 나누고 나뉜 것들을 원소로 가지는 array를 return (위의 join과 정반대의 기능)
String names = "Peter, Paul, Mary";
String[] result = names.split(", ");
result == ["Peter", "Paul", "Mary"]
- equal(string2) : string을 string2와 같은지 비교
3> 기타 형변환 method
- Integer.toString(integer) : integer를 string으로 변환 (Integer는 wrapper class이다.)
- Integer.parseInt(string2) : stringd2를 정수로 변환
- Double.toSting(double)
- Double.parseDouble(string2)
3) Assigning a string literal vs Creating a new String object
String a = "Java"; // Assigning a string literal
String b = new String("Java"); // Creating a new String object
1> Assigning a string literal
String Constant Pool이라는 공간에서 메모리를 참조한다.
2> Creating a new String object
일반적인 memory space에 값을 하나 만든다.
2개를 만들면 또 다른 메모리에 같은 값을 또 할당받는다.
4) 추가 String method
boolean startsWith (String str)
boolean endsWith (String str)
boolean contains( CharSequence str)
int indexOf (String str)
int lastIndexOf (String str)
int indexOf (String str, int fromIndex)
int lastIndexOf (String str, int fromIndex)
String replace( CharSequence oldString , CharSequence newString)
String toUpperCase()
String toLowerCase()
String trim()
'JAVA' 카테고리의 다른 글
[Java] 2-1강 - 객체 지향 프로그래밍 1 (Encapsulation - Access Modifier) (0) | 2020.10.16 |
---|---|
[Java] 1-5강 - Inputs and Outputs (0) | 2020.10.06 |
1-3강 - Java Arithmetic Operator (0) | 2020.10.06 |
1-2강 - Java Primitive Type, Variable, Constant (0) | 2020.10.06 |
1-1강 - JAVA 기본기 (Hello World!) (0) | 2020.10.06 |