일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- BFS
- Stack
- 자바의정석
- Algorithm
- 암호학
- DB
- 공개키 암호화
- javascript
- generic class
- JPA
- spring
- cloud computing
- MVC
- 알고리즘
- 생성자
- dfs
- 클라우드 컴퓨팅
- dbms
- 크루스칼
- 가상컴퓨팅
- 코딩테스트
- Java
- JDBC
- Queue
- data structure
- 자료구조
- python
- sql
- jsp
- 코테
- Today
- Total
PLOD
[Java] Java 기본 사용법 정리 본문
개발자 취업 준비를 하면서, 코딩테스트를 보게 되는 순간들이 있는데, 간혹가다 Java로 언어가 제한되는 곳이 있다.(ex. 현대 오토에버 특정 직무). 낭패를 보지 않으려면 자바 감이 떨어지지 않게 준비를 항시 해야 될 거 같다.
Integer
Integer.parseInt()
이 메소드는 문자열을 기본형 정수 (primitive type int)로 리턴한다. 문자열이 유효한 숫자를 포함하지 않는다면 NumberFormatException이 쓰로우 된다. 그렇기 때문에 문자열을 int로 바꿀때에는 항상 try-catch문으로 코드를 감싸서 이 익셉션을 처리해야 한다. Integer.parseInt() 를 써서 문자열을 int로 바꾸는 이 예시를 보자.
https://school.programmers.co.kr/learn/courses/30/lessons/181848?language=java
class Solution {
public int solution(String n_str) {
int answer = 0;
answer = Integer.parseInt(n_str);
return answer;
}
}
Integer.toString() = int + " "
int를 String으로 변환하기 위해서는 Integer.toString(), String.valueOf() 메소드를 이용할 수 있고, 간단하게는 빈 문자열과 int를 '+'연산자로 연결하여 문자열로 변환할 수 있다. 그리고 문자열에 int를 이어붙이면 문자열이 리턴되는 tip도 있다.
https://school.programmers.co.kr/learn/courses/30/lessons/181939
import java.util.*;
class Solution {
public int solution(int a, int b) {
int answer = 0;
String aString = Integer.toString(a);
String bString = Integer.toString(b);
String resultA = aString+bString;
String resultB = bString+aString;
if (Integer.parseInt(resultA) < Integer.parseInt(resultB)){
answer = Integer.parseInt(resultB);
}
else{
answer = Integer.parseInt(resultA);
}
return answer;
}
}
문자열
Character.getNumericValue()
다음 코드는 문자열의 각 자리수를 숫자로 변환한 값을 더하는 알고리즘이다. 여기서 잡아야 될 부Character.getNumericValue()이다. 이 함수는 Char 자료형 위주의 함수이기 때문에 String이라면 (String).charAt() 메서드로 char로 변환을 한 후 사용해야 한다.
class Solution {
public int solution(String num_str) {
int answer = 0;
char[] s = num_str.toCharArray();
for(int i = 0; i < s.length; i++){
answer += Character.getNumericValue(s[i]);
}
return answer;
}
}
///////////////////////////////////////////////////////////////////////////////////
class Solution {
public int solution(String num_str) {
int answer = 0;
for (int i = 0; i < num_str.length(); i++) {
answer += Character.getNumericValue(num_str.charAt(i));
}
return answer;
}
}
charAt
문자열(String)에서 문자하나만 가져와서 Char로 변환해주는 함수이다. Character 패키지의 함수들은 유용한 것들이 많다. (IsUpperCase : 대문자 판별, toUpperCase : 대문자 변환, ToLowerCase : 소문자 변환, IsLowerCase: 소문자 판별) 이러한 함수들을 사용하기 위해서는 (String).charAt(index) 함수가 꼭 필요하다
StringBuilder
자바에서 문자열을 다루는 방법은 크게 String, StringBuffer, StringBuilder 세 가지가 있다. String은 불변(immutable)의 특성을 가지고 있어, 한 번 생성되면 그 값을 변경할 수 없다. 이는 메모리 관리 측면에서 효율적이지 않을 수 있으나, 코드의 안정성과 가독성을 높여준다. StringBuffer와 StringBuilder는 가변(mutable)의 특성을 가지고 있어, 객체의 값을 변경할 수 있습니다. 이들은 문자열의 추가, 수정, 삭제 등이 빈번히 발생하는 상황에서 유용하게 사용된다.
https://school.programmers.co.kr/learn/courses/30/lessons/181949
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
StringBuffer answer = new StringBuffer();
for(int i = 0 ; i < a.length(); i++){
if (Character.isUpperCase(a.charAt(i))){
answer.append(Character.toLowerCase(a.charAt(i)));
}
else{
answer.append(Character.toUpperCase(a.charAt(i)));
}
}
System.out.println(answer);
}
}
StringBuffer는 멀티 스레드 환경에서 안전하게 사용할 수 있도록 동기화(Synchronized)가 적용되어 있다. 따라서 멀티 스레드 환경에서는 StringBuffer를 사용하는 것이 좋다. StringBuilder는 StringBuffer와 API가 유사하지만, 동기화를 지원하지 않습니다. 따라서 단일 스레드 환경에서 더 높은 성능을 제공한다.
※ StringBuffer 메서드
1. append() : 문자나 숫자를 붙일 수 있다.
2. charAt(int index) : 지정된 인덱스에 있는 문자를 반환
3. delete(int start, int end) : 시작위치에서 끝위치 사이에 있는 문자 제거한다,
StringBuffer sb = new StringBuffer("0123456"); StringBuffer sb2 = sb.delete(3,6); sb = "0126" sb2 = "0126"
4. deleteCharAt(int index) : 지정된 인덱스에 문자 제거
StringBuffer sb = new StringBuffer("0123456"); sb.deleteCharAt(3); sb = "012456"
5. insert(int index, int a) : 지정된 인덱스에 숫자(문자도 가능)를 추가한다.
6. length() : StringBuffer에 저장되어 있는 문자열의 길이를 반환
7. subString(int start, int end) : 지정된 범위 내의 문자열을 String으로 뽑아서 반환한다. 시작위치만 지정하면 시작위치부터 끝까지 뽑아서 반환
특수문자 출력
Java에서 특수문자를 출력하려면 다음과 같은 특별한 처리가 필요하다
- \\는 역슬래시(\)를 출력합니다.
- \'는 작은따옴표(')를 출력합니다.
- \"는 큰따옴표(")를 출력합니다
String.valueOf()
Char 자료형의 배열을 String으로 변환하는 방법은 다음과 같다. String.valueOf(char[])을 사용하면 쉽게 변환할 수 있다.
char[] ary = {'a','b','c','d','e'};
String arrayString = String.valueOf(ary);
System.out.println(arrayString);
substring()
Java에서 String 문자열을 자르기 위한 함수이다. (String).substring(index)를 사용하면 인덱스부터 끝까지 문자열을 가져오고, charAt 처럼 한글자만 가져오고 싶을 때는 (String).substring(index,index+1)을 사용하면 된다. 인덱스 범위로 가져오기 위해서는 (String).substring(int 시작인덱스, 끝 위치(인덱스-1)) 로 사용하면 된다.
public class SubstringExample {
public static void main(String[] args) {
String str = "Hello";
System.out.println(str.substring(2)); // "llo"
System.out.println(str.substring(5)); // ""
System.out.println(str.substring(-1)); // StringIndexOutOfBoundsException
System.out.println(str.substring(6)); // StringIndexOutOfBoundsException
String str = "Hello";
System.out.println(str.substring(2, 4)); // "ll"
System.out.println(str.substring(2, str.length())); // "llo"
}
}
문자열 더하기
문자열은 더하기 하듯이 더 해줄수 있다. 문자열을 더해주면 뒤에 더해져서 나온다.
import java.util.*;
class Solution {
public String solution(String my_string, int k) {
String answer = "";
for(int i = 0; i < k; i++){
answer += my_string;
}
return answer;
}
}
/*
입력값 〉 "string", 3
기댓값 〉 "stringstringstring"
*/
'개발 공부 > Java' 카테고리의 다른 글
[Java] 제네릭 클래스(Generic Class) (0) | 2024.06.07 |
---|---|
[Java] 싱글톤 패턴(Singleton pattern) (0) | 2023.12.31 |
[Java] 연산자(Operator) (0) | 2023.09.12 |
[Java] 배열(array) (0) | 2023.09.04 |
[Java] 객체지향프로그래밍(Object-Oriented Programming, OOP) (0) | 2023.06.21 |