split() 함수를 사용하여 .(마침표) /(슬래시) \\(역슬래시) 로 구분하기
\\(역슬래시 2개)를 붙여서 구분한다
java)
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 31 32 33 34 | package com.blog; public class BlogEx001 { public static void main(String[] args) { String strTest1 = "ABCD.가나다라.1234"; //.(마침표)로 구분 String strTest2 = "사과/바나나/딸기"; // /(슬래시)로 구분 String strTest3 = "노트북\\휴대폰\\티비"; //\(역슬래시)로 구분 /** \\ (역슬래시2개) 로 구분 */ String[] arrTest1 = strTest1.split("\\."); String[] arrTest2 = strTest2.split("\\/"); String[] arrTest3 = strTest3.split("\\\\"); /** 출력 */ for(int i=0; i<arrTest1.length; i++){ System.out.println(arrTest1[i]); } System.out.println(); for(int i=0; i<arrTest2.length; i++){ System.out.println(arrTest2[i]); } System.out.println(); for(int i=0; i<arrTest3.length; i++){ System.out.println(arrTest3[i]); } System.out.println(); } } | cs |
결과
* 오류 지적, 오타, 내용 개선 댓글은 대환영입니다! 저도 초보니까요.
안녕하세요, 갓벨입니다. 이번에는 백준 온라인 저지 10172번, '개'로 찾아뵈었습니다.
특수문자를 출력하려다 보면 간혹 제대로 출력하지 못하는 특수문자가 있습니다. 대표적인 경우가 "(큰따옴표)같은 녀석들입니다. 가령 " 하나를 출력하기 위해 다음과 같이 입력했다고 해 봅시다.
System.out.println(""");
실행해 보면 정상작동 할 것 같지만... 오류가 납니다. 그러면 어떻게 해야 출력할 수 있을까요?
바로, \(역슬래시, 원화)가 그 답입니다. 입력하고자 하는 문자 앞에 \를 입력하면 문자로 인식해서 출력할 수 있습니다.
System.out.println("\"");그러니까 \\를 출력하려면 \\\\를 출력하면 되는 거죠.
그리고 한 가지 더, System.out.println을 이용하면 문자를 출력한 뒤 출력할 수 있습니다. 그런데, 한 println 안에서 개행까지 할 수는 없을까요? 없었으면 말 하지 않았겠죠 ㅎㅎ 개행 문자는 \n입니다. 역슬래시와 n을 같이 입력하면, 거기서 개행을 하겠다는 뜻입니다.
문제
아래 예제와 같이 개를 출력하시오.
입력
없음. 어째 점점 간단해진다
출력
개를 출력한다.
예제 입력
|\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|예제 출력
풀이
상술했듯 문자로 인식되지 않는 특수문자 앞에 \를 붙이면 정상적으로 출력할 수 있다. 위의 개 모양에서 제대로 인식되지 않는 녀석들은 \(역슬래시), "(큰따옴표)입니다. 얘네 앞에다가 \를 하나씩 붙여주면 됩니다.
public class Main { public static void main(String args[]) { System.out.println( "|\\_/|\n" + "|q p| /}\n" + "( 0 )\"\"\"\\\n" + "|\"^\"` |\n" + "||_/=\\\\__|"); } }
이렇게 말이죠. 참고로 제사 출력할 때 사용한 방법은 한 줄마다 다른 문자열로 분리해서 오른쪽에 + 로 이어 붙인 겁니다. +로 이어진 문자열은 그냥 이어지게 됩니다. "abc" + "def" -> "abcdef"로 출력되는 거죠.
그럼 다음 문제에서 봬요!