큐범
Just do debug
큐범
전체 방문자
오늘
어제
  • 전체보기 (128)
    • 회고 (4)
    • JAVA (16)
      • JAVA 기초 (18)
      • JAVA Algorithm, Datastruct (13)
    • Spring (11)
    • Micro Service Architecture (3)
    • JPA (6)
    • gRPC (4)
    • Network (8)
    • Process (7)
    • Cloud (4)
    • Python (10)
    • Web(vue) (2)
    • UMC (1)
    • DB (9)
    • CS (1)
    • Clean Code (1)
    • TDD (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
큐범

Just do debug

JAVA/JAVA 기초

[JAVA 기초] String 배열화

2021. 8. 3. 13:52

String배열의 선언과 생성

String[] name = new String[3];

 

자료형 기본값
boolean false
char '\u0000'
byte, short, int 0
long 0L
float 0.0f
double 0.0d 또는 0.0

String배열의 초기화

String[] name = new String[3];
name[0] = "Kim";
name[1] = "Park";
name[2] = "Yi";

또는 {}를 통해 초기화도 가능하다.

String[] name = new String[]{"Kim", "Park", "Yi"};
String[] name = {"Kim", "Park", "Yi"};

배열에 실제 객체가 아닌 객체의 주소가 저장되어 있는 것을 볼 수 있다. 참조형 배열의 경우 배열에 저장되는 것은 객체의 주소이다.

package Array;

public 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];
		System.out.println("tmp: "+tmp);
		names[0]="Yu";
		
		for(String str : names)
			System.out.println(str);
		
	}

}
//결과
names[0] : Kim
names[1] : Park
names[2] : Yi
tmp: Yi
Yu
Park
Yi

16진수를 2진수로 변경

package Array;

public 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'];
			}else {
				result += binary[hex[i]-'A'+10];
			}
		}
		
		System.out.println("hex:"+new String(hex));
		System.out.println("binary:"+result);
		
	}

}
//결과
hex:CAFE
binary:1100101011111110

char배열과 String 클래스

String클래스는 char배열에 기능(메서드)을 추가한 것이다.

String str = "Java";
str = str + "8";
System.out.println(str);

문자열은 변경할 수 없기에 str에 "Java8"이라는 문자가 새로 생성된 것이다.

String클래스의 주요 메서드

 

이름 설명
char charAt(int index) 문자열에서 해당 위치(index)에 있는 문자를 반환한다.
int length() 문자열의 길이를 반환한다.
String substring(int from, int to) 문자열에서 해당 범위(from~to)에 있는 문자열을 반환한다. (to는 범위에 포함되지 않음)
boolean equals(object obj) 문자열의 내용이 obj와 같은지 확인한다. 같으면 결과는 true, 다르면 false가 된다.
char[] toCharArray() 문자열을 문자배열(char[])로 변환해서 반환한다.

char배열과 String클래스의 변환

char[] chArr = {'A', 'B', 'C'};
String str = new String(chArr); //char배열 -> String
char[] tmp = str.toCharArray(); //String -> char배열
package Array;

public class ArrayEx14 {

	public static void main(String[] args) {
		String src="ABCDE";
		
		for(int i=0; i<src.length(); i++) {
			char ch = src.charAt(i);
			System.out.println("src.charAt("+i+") : "+ ch);
		}
		char[] chArr = src.toCharArray();
		
		System.out.println(chArr);
	}

}
//결과
src.charAt(0) : A
src.charAt(1) : B
src.charAt(2) : C
src.charAt(3) : D
src.charAt(4) : E
ABCDE

모르스부호 활용

package Array;

public 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);
	}

}

//결과
source:SOSHELP
morse:...---.........-...--.

커맨드 라인을 통해 입력받기

package Array;

public 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]+"\"");
		}
		
	}

}
//결과
매개변수의 개수: 0
package Array;

public class ArrayEx17 {

	public static void main(String[] args) {
		if(args.length != 3) {
			System.out.println("usage: java ArrayEx17 NUM1 OP NUM2");
			System.exit(0);
		}
		int num1 = Integer.parseInt(args[0]);
		char op = args[1].charAt(0);
		int num2 = Integer.parseInt(args[2]);
		int result = 0;
		
		switch(op) {  //swtich문의 수식으로 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의 정석 - (남궁성지음)

    'JAVA/JAVA 기초' 카테고리의 다른 글
    • [JAVA 기초] 다차원 배열
    • [JAVA 기초] 배열 (선언, 생성, 길이, 초기화, 활용)
    • [JAVA 기초] 반복문(while)
    • [JAVA 기초] 반복문(for문)
    큐범
    큐범

    티스토리툴바