1. 학습목표
String배열에 대해 이해할 수 있다.
책에 있는 배열파트 예제를 모두 다루어보겠다.
2.필요 개념 문장정리
- String[] name = new String[3];
3개의 String타입의 참조변수를 저장하기 위한 공간이 마련되고 참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화 된다. - 기본형 배열이 아닌 참조형 배열의 경우 배열에 저장되는 것은 객체의 주소이다.
- string[] name = new String[3]; //길이가3인 String배열을 생성
name[0] = "Kim";
name[1]= "Park";
name[2] = " Yi" ;
- String클래스는 char배열에 메서드를 추가한 것이다.
- 기본형 변수의 값을 비교하는 경우 ==연산자를 사용하지만 문자열의 내용을 지교할 때는 equals()를 사용해야 한다. 이 메서드는 대소문자를 구분한다.
3. 코드작성
class ArrayEx12 {
public static void main (String[] args) {
String[] names = {"Kim", "Park", "Yi"};
for(int i = 0; i < names.length; i++)
System.out.println("names["+i+"]:" + names[i]);
Sring tmp = names[2]; // 배열 names의 세번째 요소를 tmp에 저장
System.out .printin("tmp:"+tmp):
names[0] = "Yu"; // 배열 names의 첫번째요소를 "Yu"로 변경
for (String str : names) // 향상된 for문
System.out.println(str);
}
}
실행결과
names[0]:Ki m
names[1]:Park
names[2]:Yi
Yu
Park
Yi
class ArrayEx13 {
public static void main(Srtnig[] args) {
char[] hxe = {'C', 'A', 'F', 'E'):
String[] binaty = {"0000", "0001", "0010", "0011"
, "0100", "0101", "0110", "0111"
, "1000", "1001", "1010", "1011"
, "1100", "1101", "1110", "1111"};
String result = "";
for(int = 0; i < hex.length; i++) {
if(hex[i] >= '0' && hex[i] <= '9') {
result += binary(hex[i]-'0']; // '8'-'0'의 결과는 8이다.
} else { // A~F이면
result += binary[hex[i]-'A'+10]; //'C'-'A'의결과는2
}
}
System.out.println("hex:" + new String(hex));
System.out.println("binary:" + result);
실행결과
hex:CAFE
binary:110010101011111110
16진수를 2진수로 변환하는 예제이다.
class ArrayEx14 {
public static void main(String[] agrs) {
String src= "ABCDE";
for(int i = i0; i < src.length();i++){
char ch = src.charAt(i); // src의 i번째 문자를 ch에 저장
System.out.println("src.charAt ("+i+"):"+ ch);
} // String을char[]로 변환
char[] chArr = src.toCharArray();
// char배열(char[])을 출력
System.out.println(chArr);
}
}
실행결과
src.charAt(0):A
src.chaArt(1):B
src.chaArt(2):C
src.chaArt(3):D
src.chaArt(4):E
ABCDE
String클래스의 charAt(int idx)을 사용하는 방법을 보여주는 예제이다. charAt(int idx)은 문자열 중에서 idx번쨰 위치에 있는 문자를 반환한다.
class ArrayEx15 (
public static void main(String[] args) {
String source = "SOSHELP";
String[] morse = {
"...", // A
"---", // B
"...", // C
"-..", // D
".", // E
"..-.", // F
"--.", // G
"....", // H
"..", // I
".---", // J
"-.-", // K
".-..", // L
"--", // M
"-.", // N
"---", // O
".--.", // P
"--.-", // Q
".-.", // R
"...", // S
"-", // T
"..-", // U
"...-", // V
".--", // W
"-..-", // X
"-.--", // Y
"--.." // Z
};
String result = "";
for(int i = 0; i < source.length(); i++){
result += morse[source.charAt(i)-'A'];
}
System.out.println("source:"+ source);
System.out.println("morse:"+ result);
}
}
실행결과
source:SOSHELP
morse:...---...|.... . .-.. .--.
문자열을 모르스부호로 변환하는 예제이다.
String의 문자의 개수는 length()를 통해서 얻을 수 있고, charAt(int i )메서드는 String의 i번째 문자를 반환한다.
for문의 조건식에 length()를 사용하고 charAt(int i)를 통해서 source에서 한 문자씩 차례대로 읽어올 수 있다.
4. 마무리
String배열 관련 메서드를 학습할 수 있었다.
반복문에 charAt()메서드를 사용하여 배열값을 변화하는 것을 이해할 수 있었다.
'언어 기초 > JAVA' 카테고리의 다른 글
[자바의정석 | Chapter 06 객체지향 프로그래밍1] 클래스,객체,인스턴스 (0) | 2024.01.15 |
---|---|
[자바의정석 | Chapter 05 배열] 다차원배열 예제 18~23 (0) | 2024.01.11 |
[자바의정석 | Chapter 05 배열] 배열 예제5 ~ 11 (2) | 2024.01.10 |
[자바의정석 | Chapter 05 배열] 배열 예제3,4 (1) | 2024.01.06 |
[자바의정석 | Chapter 05 배열] 배열 예제1,2 (1) | 2024.01.05 |