22.04.18
Wrapper Class : Float, Double
primitive datatypeは小文字/wrapperクラスで、最初のアルファベットは大文字です
package ch02;
public class Ch02Ex10 {
public static void main(String[] args) {
System.out.println(Float.MIN_VALUE + " ~ " + Float.MAX_VALUE);
//long type 범위 : 1.4E-45 ~ 3.4*10^38
System.out.println(Double.MIN_VALUE + " ~ " + Double.MAX_VALUE);
//double type 범위 : 9E-324 ~ 1.7*10^308
double dVar = 3.14;
//double bit 구성 : 부호 비트 1개, 지수 비트 11개, 가수(소수점) 비트 52개
int iVar = (int) dVar; // 강제 형변환
System.out.println(iVar); //소수점 아래를 버림
Double wVar = new Double(3.14);
int iVar2 = wVar.intValue(); //Wapper class 형변환 메소드
System.out.println(iVar2); //소수점 아래를 버림
}
}
1.4E-45 ~ 3.4028235E384.9E-324 ~ 1.7976931348623157E308
3
3
Boolean
package ch02;
public class Ch02Ex12 {
public static void main(String[] args) {
boolean bVar1 = true; //boolean 선언 및 초기화
boolean bVar2;
bVar2 = 1 > 10; //명제의 참 거짓 대입
System.out.println("bVar1 : " + bVar1 + ", bVar2 : " + bVar2);
}
}
出力結果bVar1 : true, bVar2 : false
Character
charはASCIIコードで、数字と文字の互換性があります
ASCIIコード表
package ch02;
public class Ch02Ex13 {
public static void main(String[] args) {
char chVar1 = 'A'; //문자 타입 선언 및 초기화
System.out.println(chVar1);
char chVar2 = 36;
System.out.println(chVar2);
int iVar1 = 'H'; //ASCII 코드 H 값인 72 대입
System.out.println(iVar1);
int iVar2 = 88; //ASCII 코드 X
char chVar3 = (char) iVar2;
System.out.println(chVar3);
}
}
出力結果A
$
72
X
String
元のデータ型以外はクラスで作成されたJavaインスタンスです
コンピュータを実行するには、まず実行オブジェクトをメモリに入れます.(load)
文字列Stringは、classをメモリにロードすることもできます.
package ch02;
public class Ch02Ex14 {
public static void main(String[] args) {
String str1 = new String("Hello World"); //메모리에 문자열 공간(좌표 저장) 확보, 문자열 선언 및 초기화(선언된 문자열의 주소값을 str1에 대입)
//"Hello World"라는 문자열을 메모리에 새롭게 만들어진 문자열에 대입 > 메모리를 두 번 잡아야 함
System.out.println(str1);
String str2 = "Hello";
System.out.println(str2);
}
}
出力結果Hello World
Hello
concat:接続文字列
package ch02;
public class Ch02Ex15 {
public static void main(String[] args) {
String str1 = "서울특별시";
String str2 = "마포구";
String str3 = "대홍동";
System.out.println(str1.concat(str2).concat(str3));
System.out.println(str1.concat(" ").concat(str2).concat(" ").concat(str3));
System.out.println("거구장".concat(" ").concat("3층"));
System.out.println(str1 + str2 + str3);
System.out.println(str1 + " " + str2 + " " + str3);
System.out.println("거구장" + " " + "3층");
}
}
出力結果ソウル特別市麻浦区大洪洞
ソウル特別市麻浦区大洪洞
グランド3階
ソウル特別市麻浦区大洪洞
ソウル特別市麻浦区大洪洞
グランド3階
長さ/位置
長さの値:length
位置値:index
ex)Hello-長さ:5、長さ(length)1から
ex)Hello-各位置:H(0)、e(1)、l(2)、l(3)、o(4)、位置(index)0から
package ch02;
public class Ch02Ex16 {
public static void main(String[] args) {
String str = "Nice to meet you, too.";
System.out.println(str.length()); //공백, 쉼표, 마침표 포함 22
System.out.println(str.indexOf('.'));
System.out.println(str.indexOf("."));
//작은 따옴표는 문자 하나(char data type)
//큰 따옴표는 문자열(String type) : 글자 갯수와 상관없음
System.out.println(str.indexOf('e'));
//좌 > 우 검색, 가장 앞에 저장된 위치 출력
System.out.println(str.lastIndexOf('e'));
//우 > 좌 검색, 가장 뒤에 저장된 위치 출력
//charAt : 특정 위치값의 문자 반환
System.out.println(str.charAt(0));
}
}
出力結果22
21
21
3
10
N
文字列の比較
String type格納文字列の「位置」
String str=new String()文字列が同じ位置に文字列を作成
String str="は定数空間で作成され、文字列が同じ場合は最初に作成した文字列の位置を再使用(保存)します.
文字列の位置ではなく、文字列の内容比較方法
equals:文字列比較(大文字と小文字)
equalsIgnoreCase:文字列比較(大文字と小文字を無視)
package ch02;
public class Ch02Ex17 {
public static void main(String[] args) {
int iVar1 = 777;
int iVar2 = 777;
System.out.println("primitive : " + (iVar1 == iVar2));
// == : 같다
String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println("String : " + (str1 == str2));
//문자열의 비교가 아니라 str1, str2에 저장된 위치값을 비교, false 도출
String str3 = "Hello";
String str4 = "Hello";
System.out.println("Another String : " + (str3 == str4));
//상수 공간에 만들어진 "Hello"의 동일한 위치값이 str3, str4에 저장, true 도출
String str5 = "hello";
System.out.println("str1.equals(str5) : " + str1.equals(str5));
//문자열 비교(대소문자)
System.out.println("str1.equals(str5) : " + str1.equalsIgnoreCase(str5));
//문자열 비교(대소문자 무시)
//
}
}
出力結果primitive : true
String : false
Another String : true
str1.equals(str5) : false
str1.equals(str5) : true
置換ちかん:文字列の置換もじれつのちかん
-このバージョンの不変の法則:replaceに変換した結果を保存しないと消えてしまいます
package ch02;
public class Ch02Ex18 {
public static void main(String[] args) {
String str = "Nice to meet you, too.";
System.out.println(str.replace("you", "u~")); //일회성 변화
System.out.println("원본 : " + str); //본래 데이터 유지
System.out.println(str.replace("o", "A"));
System.out.println(str.replaceAll("o", "E"));
//일회성 변화, 지정한 모든 문자 변환(언어에 따라 첫 문자만 바뀌기도 함, java는 두 메소드의 결과가 동일)
System.out.println("원본 : " + str); //본래 데이터 유지
String str2 = str.replace("you", "u~"); //변환문 저장
System.out.println("변환문 : " + str2);
}
}
出力結果Nice to meet u~, too.
原版:Nice to Meeting you,也是.
Nice tA meet yAu, tAA.
Nice tE meet yEu, tEE.
原版:Nice to Meeting you,也是.
例:Nice to Meeting u~,也是.
substring:文字列のクリップ
-このバージョンの不変の法則:substringでカットした結果を保存しないと消えてしまいます
split:文字列を分離する
package ch02;
public class Ch02Ex19 {
public static void main(String[] args) {
String str = "Nice to meet you, too.";
System.out.println(str.substring(6)); //index 6~
System.out.println(str.substring(6, 14)); //index 6~14
System.out.println(str); //본래 데이터 유지
String [] sArray = str.split(" "); //" "(공백)을 기준으로 분리
System.out.println(sArray[0]);
System.out.println(sArray[1]);
System.out.println(sArray[2]);
System.out.println(sArray[3]);
System.out.println(sArray[4]);
System.out.println("원본 : " + str);
}
}
出力結果o meet y
Nice to meet you, too.
Nice
to
meet
you,
too.
原版:Nice to Meeting you,也是.
トリムトリム:空白のトリム
-このバージョンの不変の法則:trimでカットした結果を保存しないと消えてしまいます
-文字列の前後のスペースのみを切り捨てます.文字列の中央のスペースは切り捨てられません.ex.ログイン名入力時に使用
toUpperCase:すべて大文字
toLowerCase:すべて小文字
-本版不変法則:toUpperCase/toLowerCase置き換えの結果を保存しないと消えてしまいます
package ch02;
public class Ch02Ex20 {
public static void main(String[] args) {
String str1 = " 열 공 ";
System.out.println("trim : [" + str1.trim() + "]");
System.out.println("원본 : [" + str1 + "]");
//문자열의 앞뒤의 공백만 잘린다
String str2 = "HAPPY birthday TO you";
System.out.println("대문자 변환 : " + str2.toUpperCase());
System.out.println("소문자 변환 : " + str2.toLowerCase());
System.out.println("원본 : " + str2); //본래 데이터 유지
}
}
出力結果trim:[ホットワーク]
元:[ホットワーク]
大文字コピー:HAPPY BIRTHDAY TO YOU
お誕生日おめでとうございます
オリジナル:HAPPY誕生日TO you
Integer.parseInt, Double.parseDouble...
:整数、予期せぬ変換文字列の数値
package ch02;
public class Ch02Ex21 {
public static void main(String[] args) {
String str1 = "777";
System.out.println(str1 + 10);
//'+'는 문자열 합성, 문자열과 숫자는 + 연산이 아닌 문자열 합성
int iVar1 = Integer.parseInt(str1);
System.out.println(iVar1 + 10);
String str2 = "777.77";
System.out.println(str2 + 10.10);
double dVar1 = Double.parseDouble(str2);
System.out.println(dVar1 + 10.10);
String str3 = "9876-8765";
//str3의 위치값으로 분리
String str31 = str3.substring(0, 4);
String str32 = str3.substring(5);
int iVar2 = Integer.parseInt(str31) - Integer.parseInt(str32);
System.out.println(str3 + "=" + iVar2);
//split으로 분리
String [] sArray = str3.split("-");
int iVar3 = Integer.parseInt(sArray[0]) - Integer.parseInt(sArray[1]);
System.out.println(str3 + "=" + iVar3);
}
}
出力結果77710
787
777.7710.1
787.87
9876-8765=1111
9876-8765=1111
Math class
:数学関連科目
Ceil:アップロード
ゆか
round:四捨五入
最大数:比較的大きい数
min:比較小数
pow:N二乗
sqrt:平方根
random:異なる乱数を生成(0≦x<1)
package ch02;
public class Ch02Ex22 {
public static void main(String[] args) {
System.out.println("ceil(0.1) : " + Math.ceil(0.1)); //올림
System.out.println("floor(0.9) : " + Math.floor(0.9)); //내림
System.out.println("round(0.4) : " + Math.round(0.4)); //반올림
System.out.println("round(0.5) : " + Math.round(0.5)); //반올림
System.out.println("max(100, 200) : " + Math.max(100, 200));
System.out.println("min(100, 200) : " + Math.min(100, 200));
System.out.println("pow(2, 5) : " + Math.pow(2, 5)); //N제곱
System.out.println("sqrt(25) : " + Math.sqrt(25)); //제곱근
System.out.println("random : " + Math.random()); //난수 생성(0.0 ~ 0.999...)
//0 ~ 100 사이의 수
System.out.println("random * 100 : " + Math.random() * 100);
//0 ~ 1000 사이의 수
System.out.println("random * 1000 : " + Math.random() * 1000);
}
}
出力結果ceil(0.1) : 1.0
floor(0.9) : 0.0
round(0.4) : 0
round(0.5) : 1
max(100, 200) : 200
min(100, 200) : 100
pow(2, 5) : 32.0
sqrt(25) : 5.0
random : 0.8411088698777355
random 100 : 59.56350421218407
random 1000 : 650.0617894741881
printf
: print + format
フォーマット出力>デフォルト文字列出力/整数、実数、文字出力時にtypeに一致する文字
character : %c
integer : %d
float : %f/%.Nf(デフォルトでは小数点6桁、.Nでは小数点N桁)
String : %s
package ch02;
public class Ch02Ex23 {
public static void main(String[] args) {
System.out.printf("그냥 문자열 출력 가능\n"); // \n : 줄바꿈
System.out.printf("%s\n", "그냥 문자열 출력 가능");
//%s는 문자열 출력
System.out.printf("%d\n", 123);
//%d는 정수 출력
System.out.printf("%f\n", 3.14);
//%f는 실수 출력, 소수점 6자리 출력이 기본
System.out.printf("%.2f\n", 3.14);
System.out.printf("%.20f\n", 3.14);
System.out.printf("%c\n", 'A');
//%c는 문자 출력
System.out.printf("%d + %d = %d\n", 1, 2, 3);
System.out.printf("이름 : %s, 나이 : %d, 키 : %.1fcm, 몸무게 : %.1fkg, 혈액혐 : %c\n",
"홍길동", 25, 180.0, 80.0, 'A');
}
}
出力結果文字列のみ出力
123
3.140000
3.14
3.14000000000000000000
A
1 + 2 = 3
名前:洪吉童、年齢:25、身長:180.0 cm、体重:80.0 kg、血嫌い:A
Reference
この問題について(22.04.18), 我々は、より多くの情報をここで見つけました https://velog.io/@enfyswon07/22.04.18テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol