기본 자료형의 형변환
숫자 → 숫자 형식 : ( 바뀔타입 ) 값
↳ 캐스팅 : 형변환 시 값 앞에 ()로 타입을 지정하는 것
ex) int a = 7;
System.out.println((float)a); = 7.0
위 코드의 출력값은 실수형인 7.0이다. 정수타입의 a가 실수타입으로 타입변환이 됐기때문.
숫자 → 문자열 형식: 타입클래스.toString(값)
ex) System.out.println(Integer.toString(4)); = "4"
System.out.println(Integer.toString(4) + 1); = "41"
위 코드의 출력값은 String타입의 4로 출력된다. 하지만 이것이 제대로 형변환이 되어 나온건지 확인하기위해 +1을 해보자. "문자열" + 숫자 => 문자열 + 문자열이 되기 때문에 4가 제대로 형변환이 되었다면 5가 아닌 41이 나올 것이다.
문자열 → 숫자 형식 : 타입클래스.parse타입(값)
ex) System.out.println(Integer.parseInt("4"); => 4
System.out.println(Integer.parseInt("4")+1); => 5
위 코드의 출력값은 정수형 4로 출력된다. 하지만 이것이 제대로 형변환이 되어 나온건지 확인하기위해 +1을 해보자. "문자열" + 숫자 => 문자열 + 문자열이 되기 때문에 4가 제대로 형변환이 되었다면 41이 아닌 5가 나올 것이다.
외의 문자열과 관련된 명령어
+ → 문자를 이어주는 역할
String s = "Hello World";
System.out.println(s + "!!");
출력문은 "!!"가 결합되어 Hello World!! 가 나오는 것을 볼 수 있다.
.length() → 문자열의 길이를 나타내주는 역할
System.out.println(s.length());
출력문은 "Hello World!!"의 길이인 13이 나온다. 문자열의 길이는 0부터 센다.
substring(값) → 문자열 인덱스가 값이상부터 자른다
substring(값1, 값2) → 문자열 인덱스가 값1이상부터 값2미만까지 자른다.
System.out.println(s.substring(7,10));
출력문은 String s의 문자열을 7번부터 10까지자른 "orl"이 나온다.
replace(값1,값2) : 값1을 값2로 바꾼다.
System.out.println(s.replace("l", "k"));
출력문은 문자열 s의 "l" 들이 "k"로 바뀐 "Hekko Workd!!"가 나온다
replaceFirst(값1, 값2) : 값1을 값2로 첫번째 것만 바꾼다.
System.out.println(s.replaceFirst("l", "k"));
출력문은 문자열 s의 첫번째 "l"이 "k"로 바뀐 "Heklo World!!"가 나온다.
indexOf(값) : 값의 인덱스 위치를 찾겠다.
indexOf(값,숫자) : 값을 숫자 이상에서부터 시작해서 인덱스 위치를 찾겠다.
** 값이 인덱스안에 없을 경우에는 -1이라 출력. 인덱스는 0부터 시작하기때문에 -1은 나올 수 없는 숫자이기 때문**
System.out.println(indexOf("l"));
System.out.println(indexof("l",3))
출력문은 각각 2, 3이 나온다.
lastindexOf(값) : 값의 인덱스 위치를 뒤에서부터 찾겠다.
lastindexOf(값,숫자) : 인덱스 중 숫자 이하에서 값의 인덱스 위치를 찾겠다.
System.out.println(s.lastIndexOf("l"));
System.out.println(s.lastIndexOf("l",3));
출력값은 각각 9, 3이 나온다.
charAt(숫자) : 인덱스 중 숫자에 해당하는 글자를 가져온다.
System.out.println(s.charAt(6));
인덱스번호가 6에 해당하는 w 가 출력된다.
equals(값) : 값과 동일한지 비교해준다. 출력값은 논리값으로 나온다. 문자열 비교는 무조건 equals사용
System.out.println(s.equals("abcd"));
출력문은 당연히 false
toLowerCase() : 소문자화
toUpperCase() : 대문자화
System.out.println("ABCD".toLowerCase());
System.out.println("abcd".toUpperCase());
Lower : abcd , Upper : ABCD
trim() : 앞뒤 공백 제거 중간 공백은 제거해주지않음
System.out.println(" A B C ".trim());
출력문은 앞뒤 공백이 제거된 "A B C" 가 나온다 중간 여백은 제거되지않음
split(값) : 값을 기준으로 문자열을 자르고 배열로 전환
String s = "가,나,다";
String[] arrs = s.split(",");
for(String t : arrs){System.out.println(t);}
,을 구분자로하여 나누어진 문자열을 출력해서 출력문은 가\n나\n다 가 출력된다
배열(Array) - 값을 순차적으로 보관, 크기가 고정
타입[] 변수명 = new 타입[크기]; → 해당 크기의 배열을 생성한다.
타입[] 변수명 = {값1,값2, 값3 ~ 값n} → 값의 개수와 동일한 크기의 배열을 생성하고 값을 할당한다.
int[] arr = {1,3,5};
System.out.println(arr[1]);
arr[0] = 4;
System.out.println(arr[0]);
- 정수형 arr 배열에 0,1,2 번지에 차례대로 1,3,5의 값이 할당된 상태
- 첫번째 출력문에서는 arr[1]에 배정된 3이 출력된다
- 두번째 출력문에서는 arr[0]에 4 값이 덮어씌워져 4가 출력
for문에서 "순차적"데이터 활용
↶ 1
for(타입 변수명 : 순차적데이터) {
⇙ 2 ⇈
< 내용 > ⇉ ⇉ 3
}
순차적 데이터에서 데이터를 가져와 변수에 넣고 내용을 실행하고 다음 데이터가 없으면 반복문 종료.
int arr[] = {1,2,3};
for(int a: arr) { System.out.print(a);}
출력문은 123이 나온다. 순차적으로 값이 변수에 들어가기 때문.
#실습 _ 배열을 이용하여 오름차순 정렬하기
if 만 사용한 코드
public class Exam_arr {
public static void main(String[] args) {
int[] arr = {60,10,5}; // arr[0] < arr[1] < arr[2]
int k;
if(arr[0] > arr[1]) {
k = arr[0];
arr[0] = arr[1];
arr[1] = k;
}
if(arr[0] > arr[2]) {
k = arr[0];
arr[0] = arr[2];
arr[2] = k;
}
if(arr[1] > arr[2]) {
k = arr[1];
arr[1] = arr[2];
arr[2] = k;
}
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
중첩 for문을 이용한 코드
int[] arr = {3,2,1}; // arr[0] < arr[1] < arr[2]
int t;
for(int i = 0; i < arr.length-1 ; i++) {
for(int j = i+1; j < arr.length; j++) {
if(arr[i] > arr[j]) {
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
for(int a : arr) {
System.out.println(a);
}
}
}
**참조엑셀**
'Java 시작' 카테고리의 다른 글
(21-12-02) [ 카멜, 파스칼, 스네이크 표기법 / Math 클래스 / 상속 / 오버라이딩과 오버로딩 / 객체생성 ] (0) | 2021.12.03 |
---|---|
(21-11-29) [다차원배열 / 클래스 / 메소드 / 생성자 / 스캐너] (0) | 2021.11.29 |
자바기초 (0) | 2021.11.24 |
자바 2일차 임시 (0) | 2021.11.23 |
Eclipse, JDK 설치 및 환경 구축 (0) | 2021.11.23 |