String 관련 메서드
package cote.velog;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class grammer {
public static void main(String[] args) {
String str = "abcde";
int a = str.length();
boolean b = str.isEmpty();
System.out.println(a);
System.out.println(b);
int c = str.charAt(2);
int d = str.indexOf("c");
int e = str.lastIndexOf("c");
String aa = str.substring(2, 4);
String bb = str.substring(3);
System.out.println(aa);
System.out.println(bb);
String aaa = str.replace('b', 'k');
boolean aaaa = str.equals("abcde");
System.out.println(aaaa);
boolean bbbb = str.contains("bc");
System.out.println(bbbb);
String cc = str.trim();
System.out.println(cc);
String dd = str.toLowerCase();
String ee = str.toUpperCase();
System.out.println(ee);
Integer f = str.compareTo("abcdd");
System.out.println(f);
Integer g = Integer.parseInt("300");
System.out.println(g);
String h = Integer.toString(300);
System.out.println(h);
}
}
StringBuilder 관련 메소드
변경 가능한 타입 => 문자열을 변경해야 하는 문제에서 StringBuilder 사용
// StringBuilder 관련 메소드
StringBuilder sb = new StringBuilder();
sb.append("abc");
System.out.println(sb);
sb.insert(2, "kk");
System.out.println(sb);
sb.deleteCharAt(2);
System.out.println(sb);
sb.setCharAt(0, 'h');
System.out.println(sb);
sb.reverse();
System.out.println(sb);
sb.setLength(2);
System.out.println(sb);
sb.setLength(4);
List 관련 메소드
// List 관련 메소드
List<String> list = new ArrayList<>();
List<String> list2 = new ArrayList<>();
list.add(1, "대전");
list.addAll(list2);
list.get(0);
list.set(0, "대구");
list.indexOf("대구");
list.lastIndexOf("대구");
list.remove(0);
list.remove("대구");
list.removeAll(list2);
list.retainAll(list2);
list.clear();
list.isEmpty();
list.size();
list.contains("서울");
list.containsAll(list2);
list.removeIf(k -> k % 2 != 0); // 람다식 -> 홀수를 list에서 모두 제거
}
Collections 관련 메소드
int[] arr = {1123, 1412, 23, 44, 512132};
List<Integer> list = new ArrayList(Arrays.asList(arr));
Collections.max(list); // list의 원소 중 가장 큰 값 반환
Collections.min(list); // list의 원소 중 가장 작은 값 반환
Collections.sort(list); // 오름차순 정렬
Collections.sort(list, Collections.reverseOrder()); // list 내림차순 정렬
Collections.reverse(list);
Collections.frequency(list, 23);
Collections.binarySearch(list, 24);
System.out.println(list);
int vs integer
int는 변수의 타입
변수 = 값을 저장할 수 있는 메모리 상의 공간
변수의 타입 = 자료형 = data type
=> 자료형은 data type에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것
기본형과 참조형으로 나뉨. int는 기본형
integer는 기본형을 객체로 다루기 위해 사용하는 클래스 => 레퍼 플래스 wrapper class
(Integer는 int의 레퍼클래스)
int : 자료형(primitive type)
- 산술 연산 가능함
- null로 초기화 불가
Integer : 래퍼 클래스 (Wrapper class)
- Unboxing하지 않을 시 산술 연산 불가능함
- null값 처리 가능
boxing : primitive type -> wrapper class 변환 ( int to Integer )
unboxing : wrapper class -> primitive type 변환 ( Integer to int )
Algorithm
Brute - force Algorithm
문자열 매칭 알고리즘을 단순하게 구현
int BruteForceMatch(string text, string pattern)
{
for (int i = 0; i <= text.size() - pattern.size(); i++)
{
int j = 0;
while (j < pattern.size() && text[i + j] == pattern[j])
j++;
// match at i
if (j == pattern.size())
return i;
}
return -1;
}
Failure function 코드 예시
void FailureFunction(string pattern)
{
F[0] = 0;
int i = 1;
int j = 0;
while (i < pattern.size())
{
if (pattern[i] == pattern[j])
{
F[i] = j + 1;
i++;
j++;
}
else if (j > 0)
j = F[j - 1];
else
{
F[j] = 0;
i++;
}
}
}
KMP 알고리즘 코드 예시
int KMPmatch(string text, string pattern)
{
int n = text.size();
int m = pattern.size();
FailureFunction(pattern);
int i = 0;
int j = 0;
while (i < n)
{
if (text[i] == pattern[j])
if (j == m - 1)
return i - j;
else
{
i++;
j++;
}
else
{
if (j > 0)
j = f[j - 1];
else
i++;
}
}
return -1;
}
[Java] 코딩테스트 문법 속성 정리 (1)
파이썬으로 코테를 공부한 나..◠‿◠ 어느 날 자바로 코딩테스트를 치라는 청천벽력같은 공지를 보게 되는데.. (더보기)
velog.io
[알고리즘] KMP 알고리즘
KMP 알고리즘
velog.io
int와 Integer는 무엇이 다른가
int와 Integer는 무엇이 다른가 // 기본부터 다시 시작하기
velog.io