앱 만들기/안드로이드 study

문자열 자르기 split

나도처음이야 2020. 7. 6.

자바에서는 String 클래스 내 split 함수를 사용하여 문자들을 자를 수 있다.

실질 적은 예는 하기와 같다.

 

for (String line: text.split("\n")) {
_canvas.drawText(line, mScreenConfig.getX(500), mScreenConfig.getY(y_pos), paint);
y_pos += paint.descent() - paint.ascent();
}

 

위 스트링을 담은 배열은 하기와 같다.

오늘 split 함수를 사용하게 된 이유는,

String 클래스의 Tokenizer 함수를 사용해서 날짜를 자른 뒤 canvas.drawtext를 활용해서 글자를 찍어주는 역할을 만들고 있었다. 그런데, canvas drawText() 에선 줄 바꿈이 지원되지 않기에,,, split로 "\n" 문자를 잘라내서

다음 줄에 텍스트를 그려주는 역할로 사용하게 되었다.

 

String [] IntroRandomText1 =
new String[]{
"1940 9 27 : 독일 베를린에서 독일, 이탈리아, 일본 3\n동맹 조인으로 베를린-로마-도쿄 추축 완성",

"1941 3 27 : 일본의 마스오가 유스케 외상이 히틀러와 회견",
"1941 12 8 : 일본군 폭격기가 진주만 습격 3시간 전 \n웨이크 섬을 폭격함",
"1941 12 8 : 일본군이 진주만 습격 2 15분 전 \n말레이 반도를 침공해 주둔중인 호주군과 인도군을 압도함",
"1941 12 8 : 일본군 전투기가 미국 하와이의 진주만을 습격해 \n미군 3581명 사망, 1247명 부상, 민간인 103명 사상",
"1941 12 8 : 미국이 일본에 선전 포고를 함",
"1941 12 8 : 일본군 폭격기가 필리핀 클라크와 \n이바 군용 비행기를 폭격",
"1941 12 8 : 일본군 폭격기가 홍콩의 영국 공군을 폭격함",
"1941 12 9 : 일본군이 태국 방콕을 함락시킴",
"1941 12 10 : 영국 전함 프린스 오브 웨일스 호와 \n순양함 리펄스 호가 일본군 항공기의 공격으로 침몰",
"1941 12 11 : 일본군 기동함대가 웨이크 섬을 공격했으나 패퇴함",
"1941 12 16 : 미얀마 남쪽 끝 빅토리아 곶이 일본군에 함락됨",
"1941 12 23 : 일본군이 웨이크 섬을 함락시킴",
"1941 12 25 : 중국 광둥 반도의 영국, \n캐나다 수비대가 일본군에 항복함",
};

 

위 처럼 구현한 내용은 하기 처럼,

게임 내 흰색 글자로 자연스럽게 나왔다. 자바에서 글자를 자를때는 split() 함수도 사용해보자.

감사합니다.

 

 

반응형

댓글