Java

λ³€μˆ˜, μžλ£Œν˜•, μƒμˆ˜, λ¬Έμžν˜•, StringBuffer

쑰밈밍 2022. 2. 7. 16:19

πŸ’‘ λ³€μˆ˜ variable

: λ³€ν•˜λŠ” 수, ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 쀑 κ°’ λ³€κ²½ κ°€λŠ₯

: ν”„λ‘œκ·Έλž˜λ°μ—μ„œ κ°’(Data)λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μ„ μ–Έν•˜λŠ” 것을 λ³€μˆ˜λΌ ν•œλ‹€

: ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©λ˜λŠ” 자료λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ 곡간

: ν• λ‹Ή 받은 λ©”λͺ¨λ¦¬μ˜ μ£Όμ†Œ λŒ€μ‹  λΆ€λ₯΄λŠ” 이름

: μ‚¬μš©λ˜κΈ° 이전에 μ„ μ–Έ λ˜μ–΄μ•Όν•œλ‹€

: 이름은 μ•ŒνŒŒλ²³, 숫자, _, $둜 ꡬ성, 역할에 μ–΄μšΈλ¦¬λŠ” μ§§μ§€λ§Œ μ˜λ―Έκ°€ μžˆμ–΄μ•Όν•œλ‹€(μ‚¬μš© μ˜λ„ μ•Œμˆ˜μžˆλ„λ‘)
: μ‹œμž‘μ€ μ†Œλ¬Έμž, 단어 λ°”λ€”λ•Œ λŒ€λ¬Έμžλ‘œ ꡬ별, λŒ€μ†Œλ¬Έμž ꡬ별
: 이름 사이 곡백X, 숫자둜 μ‹œμž‘X, ν‚€μ›Œλ“œ μ‚¬μš©X

public class VariableEx {

	public static void main(String[] args) {
		
		int num; 	// μ •μˆ˜ λ³€μˆ˜ μ„ μ–Έ
		num = 10;	// λ³€μˆ˜μ— κ°’ 지정 == μ΄ˆκΈ°ν™” , 였λ₯Έμͺ½μ— μžˆλŠ” 값을 μ™Όμͺ½μ— λŒ€μž…ν•œλ‹€

		System.out.println(num);
		
		int level = 20;		// λ³€μˆ˜ μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”
		
		System.out.println(level);
	}
}

 

πŸ’‘ μžλ£Œν˜•

: λ³€μˆ˜μ— μ €μž₯λ˜λŠ” 자료(κ°’)의 ν˜•νƒœλ₯Ό 의미

: λ³€μˆ˜κ°€ μ‚¬μš©ν•  κ³΅κ°„μ˜ 크기와 νŠΉμ„±μ— 따라 μžλ£Œν˜•μ„ μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜ μ„ μ–Έ

* ν΄λž˜μŠ€λ„ μžλ£Œν˜•μ΄ 될 수 μžˆλ‹€.

☞ μ •μˆ˜ν˜• : int, long (+L,l)

☞ μ‹€μˆ˜ : float (+F,f), double

 

public class ByteVariableEx {

	public static void main(String[] args) { // 이 κ΄„ν˜Έ μ•ˆμ—μ„œ μ„ μ–Έλ˜λŠ” λ³€μˆ˜ -> μ§€μ—­λ³€μˆ˜
		byte bData = -128;	// byte :-128~127κΉŒμ§€ ν‘œν˜„
		System.out.println(bData);
		
		byte bData2 = 127;
		System.out.println(bData2);
		
		int num = 10;		// int(κΈ°λ³Έ) : μ •μˆ˜ κΈ°λ³Έ μžλ£Œν˜•, 4byte
		long num2 = 231243124L;	// long : 8byte, μ‹λ³„μžL 
												
		char ch = 'A';		// char : λ¬Έμžν˜•, 2byte
									
		double dNum = 3.14;	// double(κΈ°λ³Έ) : μ‹€μˆ˜ν˜•, 8byte
		double fNum = 3.14F;	// float : μ‹€μˆ˜ν˜•, 4byte, μ‹λ³„μžF
		
					// boolean : λ…Όλ¦¬ν˜• true, false
	}

}

 

πŸ’‘ μƒμˆ˜ final

: λ³€ν•˜μ§€ μ•ŠλŠ” κ°’, 값을 단 ν•œλ²ˆλ§Œ μ„€μ •ν•  수 있게 κ°•μ œν•˜λŠ” ν‚€μ›Œλ“œ  
: final ν‚€μ›Œλ“œ μ‚¬μš© <- ν•œλ²ˆ final둜 μ„ μ–Έλœκ²ƒμ€ λ‹€λ₯Έκ°’ λŒ€μž…λΆˆκ°€
: 보톡 λŒ€λ¬Έμžλ‘œ ν‘œν˜„

: ν”„λ‘œκ·Έλž¨ μˆ˜ν–‰ 도쀑 κ·Έ 값이 λ³€κ²½λ˜λ©΄ μ•ˆλ˜λŠ” 상황에 μ‚¬μš©ν•œλ‹€
: ν”„λ‘œκ·Έλž¨ μˆ˜μ •μ‹œ ν•œκΊΌλ²ˆμ— μˆ˜μ •κ°€λŠ₯ <- μƒμˆ˜ ν•˜λ‚˜λ§Œ 고치면 λ˜λ―€λ‘œ

* 리슀트의 경우 final둜 μ„ μ–Έμ‹œ λ¦¬μŠ€νŠΈμ— 값을 λ”ν•˜κ±°λ‚˜(add), λΉΌλŠ”(remove) 것은 κ°€λŠ₯ν•˜λ‹€

 -> μž¬ν• λ‹Ήλ§Œ λΆˆκ°€λŠ₯ν•˜λ‹€

public class Constant {

	public static void main(String[] args) {
		final int MAX_NUM = 100;
		final float PI = 3.14f;
	}
}

 

πŸ’‘ λ¬Έμžν˜•

☞ char : ν•œκ°œμ˜ 문자 κ°’, ''둜 감싸기

☞ String : λ¬Έμž₯μ—΄ == λ¬Έμž₯, ""둜 감싸기

 

πŸ”Ž λ¬Έμžμ—΄ λ‚΄μž₯ λ©”μ„œλ“œ

☞ equals : λ‘κ°œμ˜ λ¬Έμžμ—΄μ΄ λ™μΌν•œμ§€ 비ꡐ해 κ²°κ³Όκ°’(true/false) 리턴, λ³€μˆ˜λͺ….equals(λΉ„κ΅λŒ€μƒ)

* == λŠ” λ™μΌν•œ 객체인지 νŒλ³„ν•΄μ£ΌλŠ” μ—°μ‚°μžμ΄λ―€λ‘œ λ¬Έμžμ—΄ 값을 λΉ„κ΅ν• λ•ŒλŠ” equalsλ₯Ό μ‚¬μš©ν•œλ‹€

☞ indexOf : λ¬Έμžμ—΄μ—μ„œ νŠΉμ • λ¬Έμžκ°€ μ‹œμž‘λ˜λŠ” μœ„μΉ˜(인덱슀)λ₯Ό 리턴, λ³€μˆ˜λͺ….indexOf(μ°Ύκ³ μžν•˜λŠ” 문자)

* indexλ²ˆν˜ΈλŠ” 0λΆ€ν„° μ‹œμž‘μ΄λ‹€

☞ contains : νŠΉμ • λ¬Έμžμ—΄μ΄ ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€ μ—¬λΆ€(true/false) 리턴, λ³€μˆ˜λͺ….contains(μ°Ύκ³ μžν•˜λŠ” 문자)

☞ charAt : νŠΉμ • μœ„μΉ˜μ˜ 문자(char) 리턴, λ³€μˆ˜λͺ….charAt(인덱슀)

☞ replaceAll : νŠΉμ •λ¬Έμžμ—΄ -> λ‹€λ₯Έ λ¬Έμžμ—΄λ‘œ λ°”κΏ€λ•Œ μ‚¬μš©, λ³€μˆ˜λͺ….replaceAll("λ°”κΎΈκΈ°μ „", "λ°”λ€”λ¬Έμžμ—΄")

☞ substring : λ¬Έμžμ—΄ 쀑 νŠΉμ • λΆ€λΆ„ 뽑아내기, λ³€μˆ˜λͺ….substring(μ‹œμž‘μœ„μΉ˜, λμœ„μΉ˜) + λμœ„μΉ˜λŠ” 좜λ ₯μ•ˆλ¨

☞ toUpperCase : λ¬Έμžμ—΄ λͺ¨λ‘ λŒ€λ¬Έμžλ‘œ λ³€κ²½, λ³€μˆ˜λͺ….toUpperCase()

    + toLowerCase : λ¬Έμžμ—΄ λͺ¨λ‘ μ†Œλ¬Έμžλ‘œ λ³€κ²½, λ³€μˆ˜λͺ….toLowerCase()

☞ split : λ¬Έμžμ—΄μ„ νŠΉμ • κ΅¬λΆ„μžλ‘œ λΆ„λ¦¬ν•˜λŠ” λ©”μ„œλ“œ

ex) String a = "a:b:c:d";

    String[] result = a.split(":"); // resultλŠ” {"a","b","c","d"}

 

πŸ”Ž λ¬Έμžμ—΄ ν¬λ§€νŒ…

ex) λ¬Έμžμ—΄ μ•ˆμ— 숫자λ₯Ό λ„£κ³  싢은 μžλ¦¬μ— %d 문자λ₯Ό λ„£μ–΄μ£Όκ³ , μ‚½μž…ν•  μˆ«μžλŠ” λ‘λ²ˆμ§Έ νŒŒλΌλ―Έν„°λ‘œ μ „λ‹¬ν•œλ‹€

System.out.printf("I want %d apples", 3); <- 3이 %d μžλ¦¬μ— λ“€μ–΄κ°„λ‹€

: %d = int, %s = string, %% = %νΌμ„ΌνŠΈ 좜λ ₯

☞ μ •λ ¬κ³Ό 곡백 : %10s == 전체길이가 10개인 λ¬Έμžμ—΄ κ³΅κ°„μ—μ„œ λŒ€μž…λ˜λŠ” 값을 였λ₯Έμͺ½μœΌλ‘œ μ •λ ¬ν•˜κ³  μ•žλΆ€λΆ„μ€ 곡백

* μ™Όμͺ½ 정렬은 %-10s

☞ μ†Œμˆ˜μ  ν‘œν˜„ν•˜κΈ° : %.4f == μ†Œμˆ˜μ  λ„€ 번째 μžλ¦¬κΉŒμ§€λ§Œ λ‚˜νƒ€λ‚΄λΌ, .뒀에 숫자만큼만 λ‚˜νƒ€λ‚Έλ‹€

 

πŸ’‘ StringBuffer

: λ¬Έμžμ—΄μ„ μΆ”κ°€/λ³€κ²½μ‹œ μ‚¬μš©ν•˜λŠ” μžλ£Œν˜•

: 객체 μƒμ„±ν•˜κ³  μ‚¬μš©ν•΄μ•Όν•œλ‹€  

☞ append : λ¬Έμžμ—΄ μΆ”κ°€, 객체λͺ….append("λ¬Έμžμ—΄")

* toString() : String μžλ£Œν˜•μœΌλ‘œ λ³€κ²½

☞ insert : νŠΉμ • μœ„μΉ˜μ— μ›ν•˜λŠ” λ¬Έμžμ—΄ μ‚½μž…, 객체λͺ….insert(μœ„μΉ˜, λ„£μ„λ¬Έμž)

☞ substring : λ¬Έμžμ—΄ 쀑 νŠΉμ • λΆ€λΆ„ 뽑아내기, λ³€μˆ˜λͺ….substring(μ‹œμž‘μœ„μΉ˜, λμœ„μΉ˜) String μžλ£Œν˜•μ˜ substring λ©”μ„œλ“œμ™€ λ™μΌν•˜κ²Œ μ‚¬μš©