본문 바로가기

코딩테스트

[이론] 1. 변수

(0) 알 면 좋은 지식들

 ① 변수의 사용범위: 블록마다 변수 사용범위가 다름

public static void main(String[] args){
	int var1;
	
	if(~){
		int var2;

   //var1,var2사용

	}

	for(~){
		int var3;
		//var1, var3사용
    //var2 사용 x
	}

}
//var1사용
//var2,3사용 xx

 

 ②타입변환가능

  ⦁ 작은 것 → 큰 것: 자동 타입변환

   크기가 큰 것으로 자동변환(int로 선언해도 double형이 될 수 있다는 얘기)

 

  ⦁ 큰 것 → 작은 것: 강제 타입변환

   1)큰 것을 작은 것 단위로 쪼갬.

   2)끝 부분만 작은 타입으로 강제적 변환

 

 

 

(1) 자료형

 <크기>

  0) byte: 1바이트

  1) char: 2바이트

  2) short: 2바이트

  3) int, float: 4바이트

  4) long, double: 8바이트

  (*c에서는 long은 4바이트고 long long이 8바이트인데 자바에서는 long long은 없고 long이 8바이트이다)

 

 

 ①정수형

  1) byte: 1바이트

  2) short: 2바이트

  3) int: 4바이트

  4) long: 8바이트

 

**표현범위는 이진수 비트단위임(1바이트=8비트)

 

 

 ② 실수형

  1) float: 4비트

*f를 붙여야함.

  2) double: 8비트

float pi=3.14F;
double morePi: 3.14159265358979323846;

 ③ 8진수와 16진수

  1) 8진수: 0으로 시작

  2) 16진수: 0x로 시작

int octal=023; //19
int hex=0xc;  //12

 ④boolean: 참 또는 거짓

  ⦁ 형식: boolean ~=true/false;

  ⦁ 활용

int base=180;
int height=185;
boolean isTall=height>base;

if (isTall){
	System.out.println("키가 큽니다.");
    
}

>>>"키가 큽니다."

 ⑤문자: char(1바이트)

 ⑥문자열: string, stringbuffer

∨ string (new)

  ⦁ 선언형식

String a="hello world";
String a=new string("hello world");

 (new) String에서만 사용가능(boolean, char, int 등등 나머지는 사용 x)

  1) 사용 모듈(string이름 . 모듈이름)

  ⦁ equals: 동일한지 판단해서 bool값 리턴(값을 판단)

 ⇒ 객체를 판단하는 것 동일한 객체여야 true를 리턴함==와 다름

string a="hello";
string b="hello";
system.out.println(a.equals(b));

>>>True

  ⦁ indexOf: 특정문자 시작 인덱스 리턴(시작 문자 위치 출력)

  ⦁ replaceAll: 특정문자를 다른 문자로 바꿈

string a="hello java";
system.out.println(a.replaceAll("java","world");

>>>hello world

  ⦁ substring: 특정문자를 뽑아낼 때 사용(파이썬에서 슬라이싱같은역할)

string name="kim sux bak";
system.out.println(a.substring(0,5));

>>>kim s

  ⦁ toUpperCase: 문자열을 모두 대문자로  ↔  toLowerCase

 

 ∨ stringBuffer (new) : 문자열을 추가하거나 변경할 때 사용

 *다 하고 toString()모듈을 이용해서 string 자료형으로 변경

 

  ⦁ append: 추가

 

 <stirngBuffer 이용>

public class name{
	public static void main(String[] args){
		StringBuffer sb=new stringBuffer();
		sb.append("hello");
		sb.append(" ");
		sb.append("sb-kim");
		system.out.println("sb.toString());
	}
}

>>>hello sb-kim

 

 <string 만 사용>

public class name{
	public static void main(String[] args){
		string temp="";
		temp+="hello";
		temp+=" ";
		temp+="sb-kim";
		system.out.println(temp);
	}
}

>>>hello sb-kim

  ⦁ insert: 원하는 위치에 문자열 삽입

public class name{
	public static void main(String[] args){
		stringBuffer sb= new stringBuffer();
		sb.append("i'm sux bak");
		sb.insert(0,"hello ");
		system.out.println(sb.toString());
	}
}

>>>hello i'm sux bak

  ⦁ substring: string자료형의 메소드와 사용방법 동일 (문자열 슬라이싱)

 

 

 ⑦ 배열(Array)

   ※배열의 길이를 고정해야함!

  <잘못한 예시>

string[] weeks = new string[];

  <잘한 예시>

string[] weeks = new string[7];

 ⑧ List

 ArrayList (new)

  ⦁ 모듈

   1) add: 추가

   →원하는 위치에 삽입가능

 

Arraylist name= new arraylist();
name.add("sux");
name.add("bak");
name.add(0,"kim");

>>>["kim","sux","bak"]

   2) get: 특정 인덱스 값 출력가능 (.get(위치))

   3) size: list갯수 리턴

   4) contains: 특정 항목이 있는지 bool값으로 리턴

   5) remove: 객체 또는 인덱스로 삭제

 

   *제네릭스⇒ 리스트에 담는 자료형까지 지정

Arraylist<String> list = new Arraylist<String>();

 →리스트안에 문자열만 담을 수 있다.

 

  ⑨ Map (파이썬에서 딕셔너리역할)

  ⦁ 자료형  ☜이건 좀더 공부해야될 거 같다!

   1) HashMap

   2) LinkedHashMap

   3) TreeMap

 

  ⦁ 모듈

   1) put

HashMap<String,String>map= new HashMap<String, String>();
map.put("people","사람")ㅣ
map.put("baseball","야구");

   2) get: key를 이용해 value값을 얻음.

   3) containsKey: key가 잇는지 확인해 bool값으로 리턴.

   4) remove: key값을 삭제하고 value를 출력.

   5) size: map의 갯수를 리턴.

 

  ⑩ class  ☜클래스 부분에서 자세하게!

:클래스를 만들면 자료형 변수를 만들 수 있다.

  ex)

class sb{
	sb age;
}

 

 

(2) 연산

   ①+, -, *, /, %

 

package sbkJAVA;

public class fourcal{
	public static void main(String[] args){
		int a=10;
		int b=5;
		system.out.println(a+b);
		system.out.println(a-b);
		system.out.println(a*b);
		system.out.println(a/b);
		system.out.println(a%b);
        }
    }

    ②++, - -

      ⦁ i++: 출력후 증가

      ⦁ ++i: 증가후 출력