개발로드

☆KDT 2024-01-16★ 본문

JAVA

☆KDT 2024-01-16★

위대한개발자 2024. 1. 16. 11:01
2차원 배열

예시1
실제 힙에 저장되는 형태

예시1 사진과 같이 int[][] num = new int[2][3]  2차원 배열을 초기화한후에

값을 넣어주면 다음과 같이 값이 저장이 된다.

 

행의 길이만 선언하고 열의 길이는 선언을 하지 않는 경우도 있다

 

 

2차원 배열의 선언과 출력

 

 

2차원 배열의 다른 방식의 선언과 출력

 

 

배열의 번호에 값을 하나씩 너주는 방법도 있고 위 코드처럼 직접 값을 정해서 초기화하는 방법도있다

 

count변수를 이용해 공간의 개수를 파악하고 평균구하기

 

 

총합을 구하고나서 평균을 구하려했지만, array배열의 총 개수를 알지 못해서 난감했다!

그래서 원시적인 방법으로 "arry[0].length+ arry[1].length+ arry[2].length" 이렇게 총 배열의 개수를 구했었다

하지만 for반복문 안에 count++ 변수 증가식을 써주면 중첩for문이 반복하는 만큼, 즉, 총 배열의 개수를 구할 수 있다!!

 

 

메소드를 호출해서 배열의 총합 구하기

 

 

 

메소드를 호출해서 처리하면 코드가 간결해진다

int[] scores1 = new int[] { 83, 90, 87 };

호출 메소드 add()에 배열이 아닌 배열의 주소를 담고있는 변수  scores1을 넣어도 된다

왜냐하면, scores1은

new int[] { 83, 90, 87 };

의 번지를 담고있기 때문에 배열을 넣나 배열의 주소가 저장된 변수를 매개변수 값에 넣으나 똑같다!

new 연산자는 new int[] {83, 90, 87}에서 int[] {83, 90, 87}를 힙에 객체로 생성해서 그 주소를 리턴하라는 클래스이다.

 

문자열

 

1. String 클래스의 객체 생성

  • String 참조변수명 = new String("문자열");  //문자열을 새롭게 생성
  • String 참조변수명 = "문자열"  //같은 문자열 끼리는 객체를 공유함
  • String 클래스만의 특징
    • 문자열 : 반드시 ""로 묶는다
    • 객체내의 값 변경불가능, 값을 변경시 새로운 객체를 생성하여 작성
    • String을 제외한 참조 타입은 객체 내의 값을 변경할 수 있음

str1 == str2 false
str2 == str3 true
str1 == str4 false
new연산자는 힙에 새로운 객체를 생성시키기 때문에
String 참조변수가 가르키는 번지 주소가 다르기 때문에 false가 나온다,
하지만 str2, str3의 경우에는 같은 번지를 참조하므로 true가 된다.

 

직접 코딩해본 결과

 

★ String객체의 '+' 연산

  •  문자열 + 문자열 => 문자열
  •  문자열 + 기본자료형 => 문자열

★String 클래스의 주요 메소드

  • length() : 문자열의 길이
    • String str = "홍길동";
    • System.out.println(str.length());  => 3
  • charAt() : 문자열에서 특정 인덱스 위치에 있는 문자하나를 추출 //인덱스 번호 0번부터 시작
  • indexOf() : 문자열에서 특정 문자나, 특정 문자열의 위치를 앞에서부터 찾아 그 위치를 알려준다. 인덱스 번호 0번부터 시작
  • lastIndexOf() : 문자열에서 특정 문자나, 특정 문자열의 위치를 뒤에서 찾아 그 위치를 알려준다.

  • String.valueOf() ; 기본 자료형을 문자열로 바꾸는 정적(static) 메소
  • concat() : 2개의 문자열을 연결, +연산자와 동일한 기능
    • String str1 = "king";
    • String str2 = "원중";
    • String str3 = str2.concat(str1); // "원중king";
  • toLowerCase() : 소문자로 변환
    • String str = "Hello java";
    • System.out.println(str.toLowerCase();  //  "hello java"
  • toUpperCase() : 소문자로 변환
    • String str = "hello java";
    • System.out.println(str.toUpperCase();  //  "HELLO JAVA"
  • replace() : 일부 문자열을 다른 문자열로 대체
    • String str = "HELLO java";
    • System.out.println(str.replace("LLO", "★"));  // "HE ★ java";
  • substring() : 문자열의 일부만을 포함하는  새로운 문자열 객체를 생성 뽑아 낼려는 문자보다 +1해야한다
    • substring(시작인덱스=0, 마지막인덱스+1) // 시작인덱스 부터 마지막 인덱스 까지 추출
  • split() : 특정 기호를 기준으로 문자열을 분리
    • String str = "abc/def-21/aa";  //배열로 처리
    • String[] splitStr = str.split("/|-|");
  • trim() : 문자열의 좌우 공백을 제거
    • String str = "          ab           cd            ef             ";
    • System.out.println(str.trim());  //  "ab        cd       ef";  =>  중간공백은 없애지 못한다!

'JAVA' 카테고리의 다른 글

☆KDT 2024-01-18★  (0) 2024.01.18
★KDT 2024-01-17☆  (0) 2024.01.17
★KDT 2024-01-15☆  (0) 2024.01.15
☆KDT 2024-01-12★  (0) 2024.01.12
★KDT 2024-01-11☆  (0) 2024.01.11