: 변수의 종류, 단위
: 숫자 형태의 자료형
종류 | 예시 |
---|---|
정수 | int intNum=10; long longNum=214748; |
실수 | float floatNum=0.1f; double doubleNum=3.4028234E; |
2진수, 8진수, 16진수 | int numBase2=0b1100; int numBase8=014; int numBase16=0xC; |
: 참과 거짓을 나타내는 자료형
boolean isPass = true;
boolean isOk = true;
: 한 대의 문자 표현에 사용하는 자료형
char keyFirst = 'a';
char keyLast = 'z';
위의 내용을 토대로 코드를 짜보았습니다.
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
public static void main(String[] args) {
//정수
System.out.println("== 숫자 ==");
int intNum = 10;
System.out.println("intNum = " + intNum);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
//실수
float floatNum = 3.14f;
double doubleNum = 3.14;
System.out.println("floatNum = " + floatNum);
System.out.println("doubleNum = " + doubleNum);
System.out.println(Float.MAX_VALUE);
System.out.println(Double.MAX_VALUE);
//2진수, 8진수, 16진수
int numBase2 = 0b1100;
System.out.println("numBase2 = " + numBase2);
int numBase8 = 014;
System.out.println("numBase8 = " + numBase8);
int numBase16 = 0xC;
System.out.println("numBase16 = " + numBase16); //모두 심진수로 변환되어 출력된다.
// 그대로 출력
System.out.println("Ob"+Integer.toBinaryString(numBase2));
System.out.println("0"+Integer.toOctalString(numBase8));
System.out.println("0x"+Integer.toHexString(numBase16));
//부울
System.out.println("==부울==");
boolean isPass = true;
System.out.println("isPass = " + isPass);
boolean isOk = true;
System.out.println("isOk = " + isOk);
//문자
System.out.println("==문자==");
char keyFirst = 'a';
System.out.println("keyFirst = " + keyFirst);
char keyLast = 'z';
System.out.println("keyLast = " + keyLast);
//아스키코드값 출력
System.out.println((int)keyFirst);
System.out.println((int)keyLast);
}
}
출력값은 다음과 같습니다.
== 숫자 ==
intNum = 10
-2147483648
2147483647
floatNum = 3.14
doubleNum = 3.14
3.4028235E38
1.7976931348623157E308
numBase2 = 12
numBase8 = 12
numBase16 = 12
Ob1100
014
0xc
==부울==
isPass = true
isOk = true
==문자==
keyFirst = a
keyLast = z
97
122
: 문자들로 이루어진 집합
String s1 = "hello world";
String s2 = "01234";
문자열 관련 메서드
: 문자열을 자주 추가하거나 변경할 때 사용하는 자료형
StringBuffer sb1 = new StringBuffer("Hello world!");
StringBuffer 관련 메서드
: 많은 수의 데이터를 담을 수 있는 자료형
int[] myArray1 = {1,2,3,4,5};
char[] myArray2 = {'a', 'b', 'c', 'd', 'e'};
위의 내용을 토대로 코드를 짜보았습니다.
public class Main2 {
public static void main(String[] args) {
//문자열
System.out.println("==문자열==");
String s1 = "Hello world";
String s2 = "01234";
System.out.println("s1 = "+s1);
System.out.println("s2 = "+s2);
String s3 = "hi";
String s4 = "hi";
System.out.println(s3.equals(s4));
System.out.println(s3==s4);
String s5 = new String("hi");
System.out.println(s3.equals(s5));
System.out.println(s3==s5);
//indexOf
//indexOf 는 특정 문자열을 찾아준다.
// !는 5번째 인덱스에 있다.
String s6 = "Hello! World!";
System.out.println(s6.indexOf("!"));
//뒤에 있는 !를 찾고 싶을 때,
System.out.println(s6.indexOf("!", s6.indexOf("!") + 1));
//replace
//기존의 문자열 사용
String s7 = s6.replace("Hello", "Bye");
System.out.println("s7 = "+s7);
//substring
//기존의 문자열에서 부분 문자열을 뽑아준다.
//(시작, 끝);
System.out.println(s7.substring(0, 3));
System.out.println(s7.substring(0, s7.indexOf("!") + 1));
//toUpperCase
System.out.println(s7.toUpperCase());
//StringBuffer : 문자열을 추가하거나 변경
System.out.println("== StringBuffer ==");
StringBuffer sb1 = new StringBuffer();
sb1.append("01234");
System.out.println("sb1 = " + sb1);
sb1.append("56789");
System.out.println("sb1 = " + sb1);
String a = "01234";
String b = "56789";
String bak = a;
System.out.println(a == bak);
a += b;
System.out.println(a == bak);
StringBuffer sb2 = new StringBuffer("name is");
sb2.insert(0, "My ");
sb2.insert(sb2.length(), " JAVA");
System.out.println("sb2 = " + sb2);
System.out.println(sb2.substring(0, 2));
//배열
System.out.println("== 배열 ==");
int[] myArray1 = {1, 2, 3, 4, 5};
System.out.println(myArray1[0]);
System.out.println(myArray1[1]);
System.out.println(myArray1[2]);
System.out.println(myArray1[3]);
System.out.println(myArray1[4]);
char[] myArray2 = {'a', 'b', 'c', 'd', 'e'};
System.out.println(myArray2[2]);
String[] myArray3 = new String[3];
myArray3[0] = "Hello";
myArray3[1] = " ";
myArray3[2] = "World!";
System.out.println(myArray3[0] + myArray3[1] + myArray3[2]);
}
}
출력값은 다음과 같습니다.
==문자열==
s1 = Hello world
s2 = 01234
true
true
true
false
5
12
s7 = Bye! World!
Bye
Bye!
BYE! WORLD!
== StringBuffer ==
sb1 = 01234
sb1 = 0123456789
true
false
sb2 = My name is JAVA
My
== 배열 ==
1
2
3
4
5
c
Hello World!
: 배열과 같이 여러 데이터를 담을 수 있는 자료형
ArrayList l1 = new ArrayList();
l1.add(1);
리스트 메서드
: key, value 형태로 데이터를 저장하는 자료형
HashMap<String, String> map = new HashMap<String,String>();
map.put("product", "kiwi);
map.put("price","9000");
맵 메서드
: 자료형을 명시적으로 지정
ArrayList<String> l1 = new ArrayList<String>();
HashMap<String,Integer> map1 = new HashMap<String, integer>();
해당 내용을 코드로 짜보았습니다.
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
public class Main3 {
public static void main(String[] args) {
//리스트
System.out.println("== 리스트 ==");
ArrayList l1 = new ArrayList();
//add
l1.add(2);
l1.add("hello");
l1.add(3);
l1.add(4);
l1.add("world");
System.out.println("l1 = " + l1);
l1.add(0, 1);
System.out.println("l1 = " + l1);
//get
System.out.println(l1.get(0));
System.out.println(l1.get(1));
//size
System.out.println(l1.size());
//remove
//인덱스 값을 찾아, 삭제
l1.remove(1);
System.out.println("l1 = " + l1);
//값을 찾아 삭제
l1.remove(Integer.valueOf(1));
System.out.println("l1 = " + l1);
l1.remove("hello");
System.out.println("l1 = " + l1);
//clear
l1.clear();
System.out.println("l1 = " + l1);
//sort
ArrayList l2 = new ArrayList();
l2.add(5);
l2.add(3);
l2.add(4);
System.out.println("l2 = " + l2);
//naturalOrder() 오름차순 정렬
l2.sort(Comparator.naturalOrder());
System.out.println("l2 = " + l2);
//reverseOrder() 내림차순 정렬
l2.sort(Comparator.reverseOrder());
System.out.println("l2 = " + l2);
// contains : 데이터가 리스트에 있는지 확인
System.out.println(l2.contains(1));
System.out.println(l2.contains(3));
// Maps
System.out.println("== Maps ==");
HashMap map = new HashMap();
//put : 순서대로 나오지 않는다 !
map.put("kiwi", 9000);
map.put("apple", 10000);
map.put("mango", 12000);
System.out.println("map = " + map);
//get : value 값을 출력한다.
System.out.println(map.get("mandarin"));
System.out.println(map.get("apple"));
//size
System.out.println(map.size());
//remove : 값을 출력한 다음, 삭제됨
System.out.println(map.remove("hi"));
System.out.println(map.remove("mango"));
System.out.println("map = " + map);
//containsKey: 키값이 맵에 있는지 확인
System.out.println(map.containsKey("mango"));
System.out.println(map.containsKey("kiwi"));
// Generics
System.out.println("== Generics ==");
ArrayList l3 = new ArrayList();
l3.add(1);
l3.add("hello");
System.out.println("l3 = " + l3);
ArrayList<String> l4 = new ArrayList<String>();
//l4.add(1);
l4.add("hello");
HashMap map2 = new HashMap();
map2.put(123, "id");
map2.put("apple", 10000);
System.out.println("map2 = " + map2);
HashMap<String, Integer> map3 = new HashMap<String, Integer>();
//map3.put(123, "id");
map3.put("apple", 10000);
System.out.println("map3 = " + map3);
}
}
출력 결과입니다.
== 리스트 ==
l1 = [2, hello, 3, 4, world]
l1 = [1, 2, hello, 3, 4, world]
1
2
6
l1 = [1, hello, 3, 4, world]
l1 = [hello, 3, 4, world]
l1 = [3, 4, world]
l1 = []
l2 = [5, 3, 4]
l2 = [3, 4, 5]
l2 = [5, 4, 3]
false
true
== Maps ==
map = {apple=10000, kiwi=9000, mango=12000}
null
10000
3
null
12000
map = {apple=10000, kiwi=9000}
false
true
== Generics ==
l3 = [1, hello]
map2 = {apple=10000, 123=id}
map3 = {apple=10000}