본문 바로가기

전체 글415

[Java] 코딩테스트를 위한 입출력 팁 import java.io.*; import java.util.StringTokenizer; 1. 자바의 입력 클래스 Scanner, BufferedReader, StringTokenizer BufferedReader, StringTokenizer 는 문자열로 활용하기 위해 사용 BufferedReader를 사용하는 것이 Scanner를 사용하는 것보다 빠르다 BufferedReader 사용 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); StringTokenizer StringTokenizer는 공백이 있을 때 뒤에 문자열이 공백처리를 땡겨 채우도록 한다. Strin.. 2023. 5. 5.
[Java] StringTokenizer를 이용해 문자열분리 StringTokenizer 기본 및 사용법 StringTokenizer 클래스는 문자열을 구분자를 이용하여 쪼갤 때 사용할 수 있다. (쪼갠다. = 파싱한다.) 예를 들어 "Hi I'm Yangs!!" 라는 문자열을 " "(공백)을 구분자로 "HI", "I'm", "Yangs!!" 이렇게 3개로 쪼개는 것이 가능하다. Token을 구분자에 의해 쪼개진 단어라고 생각하면 된다. StringTokenizer 생성 - StringTokenizer(String str) : 파싱 할 문자열을 인자로 받는다. 구분자를 지정하지 않았으므로 스페이스, 탭, 줄바꿈, 캐리지 리턴 등 기본 구분자가 적용된다. - StringTokenizer(String str, String delim) : 파싱할 문자열과 구분자를 인자.. 2023. 5. 5.
[Java] Scanner / next() 와 nextLine() 차이 Scanner 에는 String을 입력받는 메서드 next()와 nextLine() 이 있는데, 오늘은 이 둘의 차이를 알아보도록 하자. - Scanner.next() package nextLineVsNext; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str1 = scan.next(); // 우선 next의 경우 공백문자를 받아들일 수가 없다. // 위와 같이 입력 "a a"와 같은 결과를 주었다고 보자. System.out.println("str1 -> " + str1); } } 출력결과를 확인해보면 " a".. 2023. 5. 5.
[Android] EditText 밑줄제거 및 커서 커스텀 EditText를 사용하면 EditText의 너비만큼 자동으로 밑줄이 생성되어있다. 기본으로 생성되는 밑줄 이 밑줄을 제거하기 위해서는 EditText의 속성에 android:background="@android:color/transparent" 혹은 android:background="@null" 로 밑줄을 제거할 수 있다. 밑줄이 제거된 상태 그런데 이렇게되면 텍스트창의 커서까지도 사라져버린다. 이 커서를 다시 만들어주기 위해서 /res/drawable 폴더에 text_cursor.xml 파일을 만든다. 이 때, cursor의 색상은 미리 /res/values/colors 폴더에 지정해놓는다. /res/drawable/text_cursor.xml 그 다음에 EditText의 속성에 android:te.. 2023. 4. 24.
[Android] 스크롤시 상단바 숨기기, CoordinatorLayout 앱들을 사용하다 보면 스크롤할 때나 상단에 검색 툴바, 하단의 바가 사라질 때가 있고 나타날 때가 있다. 이러한 효과를 사용해보기 위함도 있고 코드본을 가지고 있기 위해 구현해 보았다. CoordinatorLayout 먼저 숨김처리 효과를 구현하기 위해 CoordinatorLayout을 사용해야 한다. CoordinatorLayout의 Behavior를 통해 자식 뷰들 간에 상호작용을 제공한다. 이 Layout을 이용하면 자식 뷰들을 드래그하여 움직이는 것도 가능하고 패널을 스와이프 해 지우기 또는 애니메이션 적용 등 다양한 기능을 활용할 수 있다고 한다. AppBarLayout LinearLayout을 상속한 스크롤 제스처에 몇 가지 동작을 할 수 있다. 이 레이아웃은 자식으로 ToolBar를 지니고 .. 2023. 4. 18.
[Android] TableLayout TableLayout(테이블 레이아웃)은 뷰를 격자 형태로 배치한다. 여러 개의 뷰를 동일한 크기로 배치해야할 때 유용하게 사용할 수 있다. 다른 레이아웃들이 ViewGroup을 상속받는 것과 달리, TableLayout은 LinearLayout을 상속받는 레이아웃이다. 사용 방법 격자의 가장 바깥쪽 가장자리에 해당하는 부분을 TableLayout 태그로 감싼다. 테이블에 들어가는 한 줄에 해당하는 row는 TableRow 태그로 감싼다. TableRow 내부에 가로 방향으로 추가하고 싶은 뷰를 하나씩 추가하면 된다. 이렇게 추가된 뷰 하나 하나가 column의 역할을 한다. 아래는 버튼을 3x2 크기로 배치하는 예제 코드이다. 3개의 column을 가지는 2개의 row가 생기는 것을 알 수 있다. 테이.. 2023. 4. 17.