package day0203;
public class UseArray1 {
public UseArray1() {
//1.선언 : 데이터형[] 배열명=null;
int[] arr=null;
//2.생성 : 배열명=new 데이퍼형[방의수]; // heap생성, 모든방 초기화, 크기변경
arr=new int[5];
System.out.println("arr의 주소" + arr + "arr.length" + arr.length);
//3.값할당 : 배열명[방의번호]=값;
arr[0]=2025;
arr[1]=2;
arr[2]=3;
arr[3]=16;
arr[4]=46;
//4.값사용 : 배열명[방의번호]
System.out.printf("arr[0]=%d, arr[1]=%d, arr[2]=%d, arr[3]=%d, arr[4]=%d\n",
arr[0],arr[1],arr[2],arr[3],arr[4]);
//일괄처리 : 모든 방의 값을 한번에 처리한다.
int sum=0;
for(int i=0; i< arr.length; i++) {
System.out.printf("arr[%d]=%d\n",i,arr[i]);
sum += arr[i]; // sum 변수에 값 추가
}//end for
System.out.println("arr배열 방의 합 : " + sum);
//배열 모든 방의 값을 더한 후 평균을 출력, 소수점 이하 두자리 까지만 출력.
double average = sum / arr.length;
System.out.printf("arr 배열 방의 평균: %.2f\n", average);
}//UseArray1
public static void main(String[] args) {
new UseArray1();
}//main
}//class
콘솔 출력
arr의 주소[I@1f32e575arr.length5
arr[0]=2025, arr[1]=2, arr[2]=3, arr[3]=16, arr[4]=46
arr[0]=2025
arr[1]=2
arr[2]=3
arr[3]=16
arr[4]=46
arr배열 방의 합 : 2092
arr 배열 방의 평균: 418.00
package day0203;
/**
* java.lang.String 클래스의 사용.
*/
public class UseString {
public UseString() {
String str=""; //empty 초기화
String str2=null; //null 초기화
//null 비교 == 연산자 사용
System.out.println("str2의 null 비교:"+(str2== null));
System.out.println("str에 null 비교:"+str== null);
//null 인 값을 가진 문자열 객체는 method 를 호출했을때 error 가 발생
// if( str2 !=null) {
// str2.isEmpty();
// }//end if
System.out.println(str);//empty : 에러는 발생하지 않고, 아무값도 출력되지 않는다.
//empty 비교
System.out.println("str empty 비교:"+(str.length()==0));//JDK1.5까지 length() 사용
//JDK1.6부터는 isEmpty() 사용 : 가독성 유리
System.out.println("str empty 비교:"+str.isEmpty() );// true
if(str != null && !str.isEmpty() ) { // 객체가 생성되어있고, "empty 가 아니었을때
//일해!
}//end if
str = " A BC ";
// 문자열의 앞뒤공백 제거
str2=str.trim(); // "A BC"할당
System.out.printf( "[%s]의 앞 뒤 공백 제거[%s]\n", str , str2 );
str="자바는 OOP언어!";
//문자열의 비교
//문자열에 모든 값을 알아야 비교 : equals()
System.out.println(str.equals("자바는 OOP언어!") ); //true
System.out.println(str.equals("자바는 OoP언어!") ); //false
System.out.println(str.equals("자바는OOP언어!") ); //false
//문자열의 일부분의 값만 알아도 비교.
//해당 문자열로 시작 했는지? :startsWith("시작문자열")
str="홍길동";
str2="드래곤";
String str3="다람쥐";
//특정 문자열로 시작했는지?
System.out.println(str+"은 '홍' 씨인가?"+str.startsWith("홍") );
System.out.println(str+"은 '홍' 씨인가?"+(str.indexOf("홍")==0) );
System.out.println(str2+"은 '홍' 씨인가?"+str2.startsWith("홍") );
System.out.println(str3+"은 '홍' 씨인가?"+str3.startsWith("홍") );
//특정 문자열로 끝났는지?
System.out.println(str+"의 이름이 '길동'인가?"+str.endsWith("길동") );
System.out.println(str2+"의 이름이 '길동'인가?"+str2.endsWith("길동") );
System.out.println(str3+"의 이름이 '길동'인가?"+str3.endsWith("길동") );
//특정문자열을 포함하고 있는지?
System.out.println(str+"에 '드'이 포함되었는가?"+str.contains("드") );
System.out.println(str+"에 '드'이 포함되었는가?"+(str.indexOf("드")!= -1) );
System.out.println(str2+"에 '드'이 포함되었는가?"+str2.contains("드") );
System.out.println(str2+"에 '드'이 포함되었는가?"+(str2.indexOf("드")!= -1));
System.out.println(str3+"에 '드'이 포함되었는가?"+str3.contains("드") );
//문자열 치환
str="Java Oracle";
str2=str.replace("a","A");
System.out.println(str2);
str2=str.replaceAll("a", "AA");
System.out.println(str2);
String msg ="나 여기,넌 어디니 슈방?";
// String filter=msg.replaceAll("씨방", "**");
// String filter=msg.replaceAll("씨", "*");
// filter=filter.replaceAll("방", "*");
// filter=filter.replaceAll("ㅆ", "*");
//method chain 사용.(method 의 반환형이 참조형 일때 method 를 연결하여 계속 호출하는 것.)
//객체명.method명().method 명().method 명().,,,,,,,,,,,
String filter=msg.replaceAll("슈", "*").replaceAll("방","*").replaceAll("ㅅㅂ","*");
System.out.println("원본:"+ msg );
System.out.println("필터:"+filter);
//원하는 형식의 문자열 생성
int year=2025;
double height=175.2;
String formatStr=String.format("올해는 %d년 내 키는 %.1f",year,height);
System.out.println(formatStr);
// 정규식 (RegEx)
msg="hello 자바 010-1234-5678 내 나이는 25살이고 우리집 번지 19-1번지";
// 숫자 패턴 \\d
// 문자열에서 모든 숫자를 x 로 처리
str=msg.replaceAll("\\d", "*");
System.out.println("원본 문자열:" +msg );
System.out.println("치환된 문자열:" + str );
// 문자열 안에서 전화번호 형식을 변경
str=msg.replaceAll("(\\d{3})-(\\d{4})-(\\d{4})", "***-****-****" );
System.out.println("치환된 문자열 :"+str);
//그룹의 값을 보여줄때
str=msg.replaceAll("(\\d{3})-(\\d{4})-(\\d{4})" , "$1-****-$3" );
System.out.println("그룹의 값 노출: :"+str);
//010-x234-6789
str=msg.replaceAll("(\\d{3})-(\\d{1})(\\d{3}-\\d{4})" , " $1-*$3" );
System.out.println("둘째 자리 하나만 없애기: "+str);
//긍정형 전방탐색 ( (?=값) )
str=msg.replaceAll("(\\d{2})(?=살)" , "**" );
System.out.println("전방탐색으로 나이뽑기"+str);
//긍정형 후방탐색 ( (?<=값) )
str=msg.replaceAll("(?<=나이는 )(\\d{2})" , "**" );
System.out.println("후방탐색으로 나이뽑기"+str);
//문자열
msg="가나다 Test ~0abc test 자바 z Z1o9!";
//'T', 'e', 's', 't'를 각각 찾는다. : 범위 x
System.out.println(msg.replaceAll("[Test]", ""));
System.out.println(msg.replaceAll("[A-Z]", "")); //대문자만 치환
System.out.println(msg.replaceAll("[a-z]", "")); //소문자만 치환
System.out.println(msg.replaceAll("[0-9]", "")); //숫자만 치환
System.out.println(msg.replaceAll("[~!.,@#$%^&*_)(}{+</;']", "")); //특수문자만 치환
System.out.println(msg.replaceAll("[ㄱ-힣]", "")); //한글만 치환
// String id="Test12ㄱ34~+";
// if(!"".equals(id.replaceAll("[A-Za-z0-9~+]", ""))) {
// System.out.println("아이디어 허용하지 않는 문자가 포함되었습니다.");
// return;
// }//end if
msg="hello! 내 이메일은 test@test.com 입니다.";
str=msg.replaceAll("\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}\\b",
"xxx@xxx.xxx");
System.out.println("원본 : " + msg);
System.out.println("치환 : " + str);
int i=3;
// str=i;//error
str=String.valueOf(i);
System.out.printf("str=%s, i=%d\n",str,i);
boolean b=false;
str=String.valueOf(b);
System.out.printf("str=%s, b=%b\n",str,b);
}//UseString
public static void main(String[] args) {
// UseString us=new UseString(); // us 라는 객체명으로 변수나 method 를 호출하지 않는다.
// 변수(객체)를 사용하지않는다 . 경고가 발생.
// => 해결 : 객체명을 선언하지 않는 객체화 : new 생성자();
new UseString();
}//main
}//class
콘솔 출력
str2의 null 비교:true
false
str empty 비교:true
str empty 비교:true
[ A BC ]의 앞 뒤 공백 제거[A BC]
true
false
false
홍길동은 '홍' 씨인가?true
홍길동은 '홍' 씨인가?true
드래곤은 '홍' 씨인가?false
다람쥐은 '홍' 씨인가?false
홍길동의 이름이 '길동'인가?true
드래곤의 이름이 '길동'인가?false
다람쥐의 이름이 '길동'인가?false
홍길동에 '드'이 포함되었는가?false
홍길동에 '드'이 포함되었는가?false
드래곤에 '드'이 포함되었는가?true
드래곤에 '드'이 포함되었는가?true
다람쥐에 '드'이 포함되었는가?false
JAvA OrAcle
JAAvAA OrAAcle
원본:나 여기,넌 어디니 슈방?
필터:나 여기,넌 어디니 **?
올해는 2025년 내 키는 175.2
원본 문자열:hello 자바 010-1234-5678 내 나이는 25살이고 우리집 번지 19-1번지
치환된 문자열:hello 자바 ***-****-**** 내 나이는 **살이고 우리집 번지 **-*번지
치환된 문자열 :hello 자바 ***-****-**** 내 나이는 25살이고 우리집 번지 19-1번지
그룹의 값 노출: :hello 자바 010-****-5678 내 나이는 25살이고 우리집 번지 19-1번지
둘째 자리 하나만 없애기: hello 자바 010-*234-5678 내 나이는 25살이고 우리집 번지 19-1번지
전방탐색으로 나이뽑기hello 자바 010-1234-5678 내 나이는 **살이고 우리집 번지 19-1번지
후방탐색으로 나이뽑기hello 자바 010-1234-5678 내 나이는 **살이고 우리집 번지 19-1번지
가나다 ~0abc 자바 z Z1o9!
가나다 est ~0abc test 자바 z 1o9!
가나다 T ~0 자바 Z19!
가나다 Test ~abc test 자바 z Zo!
가나다 Test 0abc test 자바 z Z1o9
Test ~0abc test z Z1o9!
원본 : hello! 내 이메일은 test@test.com 입니다.
치환 : hello! 내 이메일은 xxx@xxx.xxx 입니다.
str=3, i=3
str=false, b=false
package day0203;
/**
* java.lang.String 클래스의 사용.
*/
public class UseString {
public UseString() {
String str=""; //empty 초기화
String str2=null; //null 초기화
//null 비교 == 연산자 사용
System.out.println("str2의 null 비교:"+(str2== null));
System.out.println("str에 null 비교:"+str== null);
//null 인 값을 가진 문자열 객체는 method 를 호출했을때 error 가 발생
// if( str2 !=null) {
// str2.isEmpty();
// }//end if
System.out.println(str);//empty : 에러는 발생하지 않고, 아무값도 출력되지 않는다.
//empty 비교
System.out.println("str empty 비교:"+(str.length()==0));//JDK1.5까지 length() 사용
//JDK1.6부터는 isEmpty() 사용 : 가독성 유리
System.out.println("str empty 비교:"+str.isEmpty() );// true
if(str != null && !str.isEmpty() ) { // 객체가 생성되어있고, "empty 가 아니었을때
//일해!
}//end if
str = " A BC ";
// 문자열의 앞뒤공백 제거
str2=str.trim(); // "A BC"할당
System.out.printf( "[%s]의 앞 뒤 공백 제거[%s]\n", str , str2 );
str="자바는 OOP언어!";
//문자열의 비교
//문자열에 모든 값을 알아야 비교 : equals()
System.out.println(str.equals("자바는 OOP언어!") ); //true
System.out.println(str.equals("자바는 OoP언어!") ); //false
System.out.println(str.equals("자바는OOP언어!") ); //false
//문자열의 일부분의 값만 알아도 비교.
//해당 문자열로 시작 했는지? :startsWith("시작문자열")
str="홍길동";
str2="드래곤";
String str3="다람쥐";
//특정 문자열로 시작했는지?
System.out.println(str+"은 '홍' 씨인가?"+str.startsWith("홍") );
System.out.println(str+"은 '홍' 씨인가?"+(str.indexOf("홍")==0) );
System.out.println(str2+"은 '홍' 씨인가?"+str2.startsWith("홍") );
System.out.println(str3+"은 '홍' 씨인가?"+str3.startsWith("홍") );
//특정 문자열로 끝났는지?
System.out.println(str+"의 이름이 '길동'인가?"+str.endsWith("길동") );
System.out.println(str2+"의 이름이 '길동'인가?"+str2.endsWith("길동") );
System.out.println(str3+"의 이름이 '길동'인가?"+str3.endsWith("길동") );
//특정문자열을 포함하고 있는지?
System.out.println(str+"에 '드'이 포함되었는가?"+str.contains("드") );
System.out.println(str+"에 '드'이 포함되었는가?"+(str.indexOf("드")!= -1) );
System.out.println(str2+"에 '드'이 포함되었는가?"+str2.contains("드") );
System.out.println(str2+"에 '드'이 포함되었는가?"+(str2.indexOf("드")!= -1));
System.out.println(str3+"에 '드'이 포함되었는가?"+str3.contains("드") );
//문자열 치환
str="Java Oracle";
str2=str.replace("a","A");
System.out.println(str2);
str2=str.replaceAll("a", "AA");
System.out.println(str2);
String msg ="나 여기,넌 어디니 슈방?";
// String filter=msg.replaceAll("씨방", "**");
// String filter=msg.replaceAll("씨", "*");
// filter=filter.replaceAll("방", "*");
// filter=filter.replaceAll("ㅆ", "*");
//method chain 사용.(method 의 반환형이 참조형 일때 method 를 연결하여 계속 호출하는 것.)
//객체명.method명().method 명().method 명().,,,,,,,,,,,
String filter=msg.replaceAll("슈", "*").replaceAll("방","*").replaceAll("ㅅㅂ","*");
System.out.println("원본:"+ msg );
System.out.println("필터:"+filter);
//원하는 형식의 문자열 생성
int year=2025;
double height=175.2;
String formatStr=String.format("올해는 %d년 내 키는 %.1f",year,height);
System.out.println(formatStr);
// 정규식 (RegEx)
msg="hello 자바 010-1234-5678 내 나이는 25살이고 우리집 번지 19-1번지";
// 숫자 패턴 \\d
// 문자열에서 모든 숫자를 x 로 처리
str=msg.replaceAll("\\d", "*");
System.out.println("원본 문자열:" +msg );
System.out.println("치환된 문자열:" + str );
// 문자열 안에서 전화번호 형식을 변경
str=msg.replaceAll("(\\d{3})-(\\d{4})-(\\d{4})", "***-****-****" );
System.out.println("치환된 문자열 :"+str);
//그룹의 값을 보여줄때
str=msg.replaceAll("(\\d{3})-(\\d{4})-(\\d{4})" , "$1-****-$3" );
System.out.println("그룹의 값 노출: :"+str);
//010-x234-6789
str=msg.replaceAll("(\\d{3})-(\\d{1})(\\d{3}-\\d{4})" , " $1-*$3" );
System.out.println("둘째 자리 하나만 없애기: "+str);
//긍정형 전방탐색 ( (?=값) )
str=msg.replaceAll("(\\d{2})(?=살)" , "**" );
System.out.println("전방탐색으로 나이뽑기"+str);
//긍정형 후방탐색 ( (?<=값) )
str=msg.replaceAll("(?<=나이는 )(\\d{2})" , "**" );
System.out.println("후방탐색으로 나이뽑기"+str);
//문자열
msg="가나다 Test ~0abc test 자바 z Z1o9!";
//'T', 'e', 's', 't'를 각각 찾는다. : 범위 x
System.out.println(msg.replaceAll("[Test]", ""));
System.out.println(msg.replaceAll("[A-Z]", "")); //대문자만 치환
System.out.println(msg.replaceAll("[a-z]", "")); //소문자만 치환
System.out.println(msg.replaceAll("[0-9]", "")); //숫자만 치환
System.out.println(msg.replaceAll("[~!.,@#$%^&*_)(}{+</;']", "")); //특수문자만 치환
System.out.println(msg.replaceAll("[ㄱ-힣]", "")); //한글만 치환
// String id="Test12ㄱ34~+";
// if(!"".equals(id.replaceAll("[A-Za-z0-9~+]", ""))) {
// System.out.println("아이디어 허용하지 않는 문자가 포함되었습니다.");
// return;
// }//end if
msg="hello! 내 이메일은 test@test.com 입니다.";
str=msg.replaceAll("\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}\\b",
"xxx@xxx.xxx");
System.out.println("원본 : " + msg);
System.out.println("치환 : " + str);
int i=3;
// str=i;//error
str=String.valueOf(i);
System.out.printf("str=%s, i=%d\n",str,i);
boolean b=false;
str=String.valueOf(b);
System.out.printf("str=%s, b=%b\n",str,b);
}//UseString
public static void main(String[] args) {
// UseString us=new UseString(); // us 라는 객체명으로 변수나 method 를 호출하지 않는다.
// 변수(객체)를 사용하지않는다 . 경고가 발생.
// => 해결 : 객체명을 선언하지 않는 객체화 : new 생성자();
new UseString();
}//main
}//class
콘솔 출력
-----------------------------------------------------------
시험결과
응시인원[5]명
-----------------------------------------------------------
번호 이름 JavaSE Oracle JDBC HTML 총점 평균
===========================================================
1 루피 57 58 42 90 247 61
2 상디 75 77 79 89 320 80
3 쵸파 97 100 98 100 395 98
4 조로 87 88 88 84 347 86
5 나미 95 91 99 93 378 94
===========================================================
과목 총점:
JavaSE: 411 Oracle: 414 JDBC: 406 HTML: 456
과목 평균:
JavaSE: 82.20 Oracle: 82.80 JDBC: 81.20 HTML: 91.20
1등 학생: 쵸파 (총점: 395)
1등 학생 점수 (오름차순): 97 98 100 100
package day0204;
public class VariableArray {
public VariableArray() {
//1.선언) 데이터형[][] 배열명=null;
int[][] arr=null;
//2.생성) 배열명=new 데이터형[행의수][];//열의 수를 설정하지 않는다.
arr=new int[5][];
//3.행마다 열을 생성) 배열명[행의번호]=new 데이터형[열의수];
arr[0]=new int[3];
arr[1]=new int[2];
arr[2]=new int[]{1,2,3,4,5};
arr[3]=new int[]{1};
arr[4]=new int[]{10,20,30};
for(int i=0; i <arr.length;i++) {
System.out.printf("arr[%d]행에 열의 수 %d개\n",i,arr[i].length);
}//end for
//4.값할당) 배열명[행의번호][열의번호]=값;
arr[0][0]=10;
arr[1][1]=10;
arr[2][3]=50;
//5.값사용) 배열명[행의번호][열의번호]
for(int[] oneArr : arr ) {//이차원 배열의 한행은 일차원 배열로 이루어져 있다
for(int value : oneArr) { //일차원 배열의 방은 단일 형으로 이루어져 있다
System.out.printf("%d\t",value);
}//end for
System.out.println();
}//end for
}//VariableArray
public static void main(String[] args) {
new VariableArray();
}//main
}//class
콘솔 출력
arr[0]행에 열의 수 3개
arr[1]행에 열의 수 2개
arr[2]행에 열의 수 5개
arr[3]행에 열의 수 1개
arr[4]행에 열의 수 3개
10 0 0
0 10
1 2 3 50 5
1
10 20 30
'Java' 카테고리의 다른 글
[Java] ArrayList,Scanner (0) | 2025.03.19 |
---|---|
[Java] StringBuilder 등 유용한 클래스들 import하기 (0) | 2025.03.17 |
[Java] Method Overroad, this (0) | 2025.03.14 |
[Java] Method - Instance ,Static,Variable 및 4가지 형태 (0) | 2025.03.13 |
[Java] 제어문( if, switch~case, for, while, do, continue, return,break),Variable (0) | 2025.03.12 |