정규 표현식 [A-Za-z !,?._'@]+와 매칭되는 String s가 주어지면 string을 토큰으로 split한다. 이때 토큰은 하나 이상의 연속적인 영어 알파벳이라고 정의한다. 그리고 토큰 수를 프린트하고 이어서 각 토큰을 새 라인에 프린트해준다.
공백 ""을 사용해 문자열을 분리하는 경우
public class Split {
public static void main(String[] args) {
String str = "Hello World";
String[] ArraysStr = str.split(" ");
for(String s : ArraysStr)
System.out.println(s);
}
}
//결과
// Hello
// World
","을 사용해 문자열을 분리하는 경우
public class Split {
public static void main(String[] args) {
String str = "ABCDEFG,HIJKLMN,OPQRSTU,VWXYZ";
String[] ArraysStr = str.split(",");
for(String s : ArraysStr)
System.out.println(s);
}
}
//결과
// ABCDEFG
// HIJKLMN
// OPQRSTU
// VWXYZ
import java.io.*;
public class Test {
public static void main(String args[]) {
String Str = new String("Welcome-to-Tutorialspoint.com");
System.out.println("Return Value :" );
for (String retval: Str.split("-", 2)) {
System.out.println(retval);
}
System.out.println("");
System.out.println("Return Value :" );
for (String retval: Str.split("-", 3)) {
System.out.println(retval);
}
System.out.println("");
System.out.println("Return Value :" );
for (String retval: Str.split("-", 0)) {
System.out.println(retval);
}
System.out.println("");
}
}
//결과 값
Return Value :
Welcome
to-Tutorialspoint.com
Return Value :
Welcome
to
Tutorialspoint.com
Return Value:
Welcome
to
Tutorialspoint.com
데이터 앞뒤로 공백이 찍히는 경우가 발생할 수 있다 이때 trim()메서드를 사용하면 간단히
공백을 제거할 수 있다. 공백 문자인 유니코드값 \u0020을 읽어들여 문자열의 앞,뒤 공백을 제거해 준다.
public class Trim{
public static void main(String[] args){
String str = " Hello World ";
System.out.println(str.trim());
}
}
결과: 앞뒤 공백이 제거된다.
Hello World
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
// Write your code here.
// s를 trim()해주고, 그 길이가 문제에서 주어진 범위 안에 있다면
if (s.trim().length() >=1 || s.trim().length() >= 400000){
//split()을 사용해 구분자를 바탕으로 문자열을 배열형식으로 정규식(regex)에 맞춰서 분할하고 token이라는 변수명으로 담아준다.
String[] token = s.trim().split("[ !,?._'@]+");
// 첫줄에는 token의 길이를 출력한다.
System.out.println(token.length);
//i 초기값 0부터 i가 토큰의 길이보다 작을때까지 증가시키며 반복
for(int i=0; i<token.length; i++){
//토큰의 배열을 출력해준다.
System.out.println(token[i]);
}
} else{
System.out.println("0");
}
scan.close();
}