String 배열
2.1 String 배열의 선언과 생성
String[] name = new String[3];
- 배열에는 실제 객체가 아니라 객체의 주소가 저장 됨
2.1 String 배열의 초기화
String[] name = new String[3]
name[0] = nwe String("Kim");
name[1] = nwe String("Lee");
name[2] = nwe String("Park");
name[0] = "Kim";
name[1] = "Lee";
name[2] = "Park";
String[] name = new String[]{"Kim", "Lee", "Park"}
String[] name = {"Kim", "Lee", "Park"}
xxxxxxxxxx
package ch05;
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]);
}
String tmp = names[2]; // 배열 names의 세 번째요소를 tmp에 저장
System.out.println("tmp:"+tmp);
names[0] = "Yu"; // 배열 names의 첫 번째 요소를 "Yu"로 변경
for(String str : names) // 향상된 for문
System.out.println(str);
} // main
}
16진수 2진수로 변경하기
xxxxxxxxxx
package ch05;
class ArrayEx13 {
public static void main(String[] args) {
char[] hex = { 'C', 'A', 'F', 'E'};
String[] binary = { "0000", "0001", "0010", "0011"
, "0100", "0101", "0110", "0111"
, "1000", "1001", "1010", "1011"
, "1100", "1101", "1110", "1111" };
String result="";
for (int i=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)); // String(char[] value)
System.out.println("binary:"+result);
}
}
}
2.3 char배열과 String 클래스
String 클래스는 char배열에 기능(메서드)을 추가한 것이다
String 클래스의 주요 메서드
메서드 | 설명 |
---|---|
char charAt(int index) | 문자열에서 해당 위치(index)에 있는 문자를 반환 |
int length() | 문자열의 길이 반환 |
String substring(int from, int to) | 문자열에서 from에서 to(미포함) 앞까지 반환 |
boolean equals(String str) | 문자열 내용이 같은지 결과 true or false |
char toCharArray() | 문자열을 문자배열로 변환해서 반환 |
char배열과 String클래스의 변환
xxxxxxxxxx
package ch05;
class ArrayEx14 {
public static void main(String[] args) {
String src = "ABCDE";
for(int i=0; i < src.length(); i++) {
char ch = src.charAt(i); // src의 i번째 문자를 ch에 저장
System.out.println("src.charAt("+i+"):"+ ch);
}
char[] chArr = src.toCharArray(); // String을 char[]로 변환
System.out.println(chArr); // char배열(char[])을 출력
}
}
모르스(morse) 부호 출력
xxxxxxxxxx
package ch05;
class ArrayEx15 {
public static void main(String[] args) {
String source = "SOSHELP";
String[] morse = {".-", "-...", "-.-.","-..", "."
,"..-.", "--.", "....","..",".---"
, "-.-", ".-..", "--", "-.", "---"
, ".--.", "--.-",".-.","...","-"
, "..-", "...-", ".--", "-..-","-.--"
, "--.." };
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);
}
}
2.4 커맨드 라인을 통해 입력받기
xxxxxxxxxx
package ch05;
class ArrayEx16 {
public static void main(String[] args) {
System.out.println("매개변수의 개수:"+args.length);
for(int i=0;i< args.length;i++) {
System.out.println("args[" + i + "] = \""+ args[i] + "\"");
}
}
}
java ch05.ArrayEx16 abc 123 "Hello world~"
http://huammmm1.tistory.com/462
- eclipse -> Run As -> Run Configuration > arguments https://blog.naver.com/pajamasi/60198875668
- 입력받은 데이터는 무자열 : Integer.parseInt() 사용
package ch05;
class ArrayEx17 {
public static void main(String[] args) {
if (args.length !=3) {
System.out.println("usage: java ArrayEx15 NUM1 OP NUM2");
System.exit(0);
}
int num1 = Integer.parseInt(args[0]); // 문자열을 숫자로 변환한다.
char op = args[1].charAt(0); // 문자열을 문자(char)로 변환한다.
int num2 = Integer.parseInt(args[2]);
int result = 0;
switch(op) { // switch문의 수식으로 char타입의 변수도 가능하다.
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case 'x':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default :
System.out.println("지원되지 않는 연산입니다.");
}
System.out.println("결과:"+result);
}
}
이전글
'JAVA > 배열(array)' 카테고리의 다른 글
배열(array)_4 (2) | 2018.08.16 |
---|---|
배열(array)_2 (0) | 2018.08.16 |
배열(array)_1 (0) | 2018.08.16 |