Java

    Java - StringTokenizer

    StringTokenier의 활용법을 알아야겠다고 판단해 이에 대해 정리하고자 한다. StringTokenizer java.util에 속하는 StringTokenizer 클래스는 문자열을 지정한 구분자에 맞게 나누는 역할을 한다. Interface Enumeration를 구현했다. 생성자 StringTokenizer의 생성자는 아래와 같이 세 가지가 있다. 인자의 용도는 다음과 같다. String str: 토큰으로 만들 문자열 String delim: 구분자 boolean returnDelims: 구분자도 토큰에 포함시킬 것인지(true면 구분자도 토큰으로 간주한다. default: false) 위 3개의 생성자 중 StringTokenizer(String str)은 구분자를 받지 않는데 그렇다면 무엇을..

    Java - 문자 기반 스트림(Reader, Writer)

    바이트 기반 스트림에 이어 문자 기반 스트림에 대해 알아보자. https://dlise.tistory.com/80 Java - 바이트 기반 스트림(InputStream, OutputStream) SWEA에서 문제를 풀면 사용 언어, 메모리 사용량, 실행시간, 코드 길이를 보여준다. 다른 사람들의 코드 및 결과도 확인이 가능한데 내가 푼 코드와 다른 사람들이 푼 코드의 메모리 사용량, 실행 dlise.tistory.com 문자 기반 스트림(Reader, Writer) 바이트 기반 스트림과 문자 기반 스트림은 데이터를 다루는 단위가 바이트인지 문자인지의 차이일 뿐 사용 방법은 거의 유사하다. 문자를 다루므로 스트림 처리 단위는 2byte이다. 바이트 기반 스트림에서 InputStream과 OutputStre..

    Java - 바이트 기반 스트림(InputStream, OutputStream)

    SWEA에서 문제를 풀면 사용 언어, 메모리 사용량, 실행시간, 코드 길이를 보여준다. 다른 사람들의 코드 및 결과도 확인이 가능한데 내가 푼 코드와 다른 사람들이 푼 코드의 메모리 사용량, 실행 시간의 차이가 큰 것을 발견했다. 이유가 궁금해 코드를 비교해 가며 하나하나 바꿔본 결과 I/O 과정에서 차이가 발생한 것이었다. (내가 푼 코드: java.util.Scanner활용, 다른 사람들 코드: java.io.* 활용) Java I/O를 바이트 기반 스트림, 문자 기반 스트림으로 구분해 학습하고자 한다. https://dlise.tistory.com/81 Java - 문자 기반 스트림(Reader, Writer) 바이트 기반 스트림에 이어 문자 기반 스트림에 대해 알아보자. https://dlise...

    Java - Gradle Project 생성

    Java로만 작업을 하다가 Gradle을 활용해 보기 위해 Gradle Project를 생성했다. 나중에 다시 작업을 할 경우가 있을까 해서 정리하고자 한다.(Java 기준) 1. Gradle 다운로드 2. Gradle Project 생성 Gradle 다운로드 1. 명령 프롬프트(cmd)에 gradle -v 혹은 gradle -version을 입력해 상황을 파악한다. 아래와 같은 문구가 나온다면 Gradle을 다운로드하지 않았거나 환경 변수 설정이 제대로 이루어지지 않은 것이다. 'gradle'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 아래 사이트에서 원하는 버전의 binary-only를 클릭해 zip파일을 다운로드한다. https://gradle.org/re..

    Java - 정규 표현식(Pattern, Matcher)

    이전 글에 이어서 이번엔 Pattern과 Matcher를 알아보고자 한다. 이전 글: https://dlise.tistory.com/77 Java - 정규 표현식(Regex) 알고리즘 문제를 풀면 풀수록 정규 표현식의 유능함이 느껴져서 이를 제대로 알아보고자 한다. Java에선 정규 표현식을 쉽게 활용할 수 있도록 Java.util.regex API(Pattern, Matcher)를 제공한다. 활용 방 dlise.tistory.com Pattern & Matcher Pattern, Matcher는 java.util.regex 패키지에 있다. Pattern은 정규식을 정의, Matcher는 정의된 정규식을 데이터와 비교하는 데 사용된다. 사용 순서는 다음과 같다. 1. 정규식을 매개변수로 Pattern 클..

    Java - 정규 표현식(Regex)

    알고리즘 문제를 풀면 풀수록 정규 표현식의 유능함이 느껴져서 이를 제대로 알아보고자 한다. Java에선 정규 표현식을 쉽게 활용할 수 있도록 Java.util.regex API(Pattern, Matcher)를 제공한다. 활용 방법은 Oracle의 Java Tutorials와 Pattern API 문서에서 자세히 확인할 수 있으며 이번 글에선 Java Tutorials에서 설명하는 것을 따라 순서대로 정리해보고자 한다. Java Tutorials - Lesson: Regular Expressions https://docs.oracle.com/javase/tutorial/essential/regex/ Lesson: Regular Expressions (The Java™ Tutorials > Essentia..

    Java - Thread에서 while문 안의 if문이 동작하지 않는 이유

    Java 스레드를 사용하던 중 while문이 제대로 동작하지 않는 경우가 발생해 이에 대해 찾아보았다. 문제가 된 코드 내가 짠 코드의 형태는 아래와 같다. if문 내에 사용한 변수는 다른 클래스의 클래스변수이다. new Thread() { @Override public void run() { while(true) { if(OtherClass.isTrue) { ... } } } } thread를 무한 루프 돌리면서 isTrue가 참이 되는 경우에만 작동하기를 원했는데 코드가 돌지 않았다. 무엇이 문제인가 싶어서 아래와 같이 System.out.println()을 넣어봤더니 제대로 동작했다. new Thread() { @Override public void run() { while(true) { Syste..

    Java - sort() (Comparator & Comparable)

    Arrays.sort(arr); 은 배열 arr을 오름차순으로 정렬한다. 하지만 내림차순 정렬이 필요한 경우가 점차 많아졌고 방법을 정리할 겸 sort()와 관련된 내용을 다시 공부하기로 했다. Arrays.sort(a) & Arrays.sort(a, fromIndex, toIndex) https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Arrays.html#sort(T%5B%5D,java.util.Comparator) Arrays (Java SE 17 & JDK 17) public class Arrays extends Object This class contains various methods for manipulating ar..