2022.11.10 JAVA 11일차 String클래스, 이중배열

2022. 11. 21. 21:50JAVA

String 클래스

문자배열인 char배열과 같은 뜻
char배열이 아닌 String클래스를 이용해서 문자열을 처리하는 이유:
String 클래스가 char배열에 기능(메서드)을 추가한 것이기 때문
char배열과 String클래스의 중요한 차이는 String객체는 읽을수만 있을 뿐
내용 변경은 할 수 없음.(StringBuffer 클래스 사용)

String str = "Java";
str = str + "8"; //"Java8"이라는 새로운 문자열이 str에 저장
System.out.println(str);  //"Java8"

문자열 strr의 내용이 변경되는것 같지만, 문자열은 변경할 수 없으므로 새로운 내용의 문자열이 생성됨.

		String str = "java programing";
		char c = str.charAt(0);
		char ch[] = {'j', 'a', 'v', 'a'};
		System.out.println("str.charAt(0) : " + c);
		System.out.println("str.charAt(5) : " + str.charAt(5));
		
		System.out.println("str.lenght() : " + str.length());
		System.out.println("str.substring() : " + str.substring(3));
		System.out.println("str.substring() : " + str.substring(1,8));
		
		System.out.println("str.epuals(1) : " + str.equals("java programing"));
		System.out.println("str.epuals(2) : " + str.equals("java"));
		
		int num =10;
		
		String str1 = String.valueOf(num);
		
		System.out.println(str1 + " lenght : " + str1.length());

출력

String클래스의 중요 메서드

char charAt(int index) : 문자열에서 해당위치(index)에 있는 문자를 반환함
int lenght() : 문자열의 길이를 반환함
String substring(int from,int to) : 문자열에서 해당범위(from ~ to)에 있는 문자열을 반환함(to는 범위에 포함안됨)
boolean equals(Object obj) : 문자열이 내용이 obj와 같은지 확인함. 같으면true 틀리면 false
char[] toCharArray() : 문자열을 문자배열(char[])로 변환해서 반환함

 

 

String 배열 (String 자체는 char배열이기 때문에 String배열은 곧 2중배열과 같다)
3개의 문자열을 담을수 있는 배열 생성
String[] name = new String[3];
name[0] = "Kim";
name[1] = "Park";
name[2] = "Yu";

 

		String names[] = {"Kim", "Park", "Lee"};
		String name = "KimParkLee";
		int i;
		for(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(i = 0; i < names.length; i++)
		{
			System.out.println("names[" + i + "] : " + names[i]);
		}

출력

타입별 기본값

boolean : false
char : '\u0000'(' ')
byte,short,int : 0
long : 0L
float : 0.0f
double : 0.0d. 0.0
참조형 변수 : null

 

2중 배열

int score[][] = new int [3][3];

score[0][0] score[0][1] score[0][2]
score[1][0] score[1][1] score[1][2]
score[2][0] score[2][1] score[2][2]

2중배열 초기화
int arr[][] = new int[][]{{1,2,3},{1,2,3}};

		/*
		 * 2차원 배열
		 * 실행결과) 
		 * score[0][0] = 100
		 * score[0][1] = 100
		 * score[0][2] = 100
		 * score[1][0] = 20
		 * score[1][1] = 20
		 * score[1][2] = 20
		 * score[2][0] = 30
		 * score[2][1] = 30
		 * score[2][2] = 30
		 * score[3][0] = 40
		 * score[3][1] = 40
		 * score[3][2] = 40
		 * sum = 570;
		 */
		
		
		int i,j;
		int sum = 0;
		int score[][] = {{100,100,100},{20,20,20},{30,30,30},{40,40,40}};
		
		for(i = 0; i < score.length; i++)
		{
			for(j = 0; j <score[i].length; j++)
			{
				System.out.printf("score[%d][%d] = %d\n",i,j,score[i][j]);
				sum += score[i][j];
			}
		}
		System.out.println("sum : " +sum);
		
		String names[] = {"Kim", "Park", "Lee"};
		for(i = 0; i < names.length; i++)
		{
			
			for(j = 0; j < names[i].length(); j++)
			{
		System.out.println("names.lenght : " + names.length + ", names["+i+"].lenght : " + names[i].length());
			}
		}