자바 charAt 공백 - jaba charAt gongbaeg

안녕하세요

이번 글에서는 자바의 charAt에 대해서 알아보겠습니다

알고리즘 공부를 하면서 charAt이란 녀석을 처음으로 써봤습니다

charAt이란 string 타입으로 받은 문자열을 char 타입으로 한 글자만 받는 함수입니다

주로 Scanner와 같이 응용되서 사용이 됩니다

이제 사용방법에 대해서 알아보겠습니다

1. 문자열 받기

 "Hello World"를 charAt(0)을 통해서 첫 번째 문자열 "H"만 받아올 수 있습니다

 밑의 System.out.print를 실행하면 "H"만 받아옵니다

String str = "Hello World";		
System.out.print(str.charAt(0));

2. 숫자 받기

 숫자로 받는 방법입니다

 a를 0으로 입력한 후 b에서 숫자로 받습니다

 - 48을 하는 이유는 숫자 0-9까지는 유니코드상 48-57입니다

 그래서 48을 빼서 b에서 숫자 0을 집어넣었습니다

String a = "0";
int b = a.charAt(0) - 48;

System.out.println(b);

3. charAt을 사용해서 홀수 번째 문자열, 짝수 번째 문자열 받기

 for문과 if - else를 응용해서 홀수, 짝수번째 문자열을 받는 식을 만들어봤습니다

 charAt을 응용하면 이런 방식의 구문도 가능합니다

 Odd는 "HloWrd"

 Even은 "el ol"

 값을 출력해줍니다

String str2 = "Hello World";		
String Odd = "";
String Even = "";
int length = str2.length();

for(int i = 0; i < length; i++)
{
	if(i % 2 == 0)
		Odd = Odd + str2.charAt(i);
	else
		Even = Even + str2.charAt(i);
}

System.out.println(Odd);
System.out.println(Even);

여기까지 자바(JAVA)의 charAt 정의 및 사용방법에 대해서 알아봤습니다

혹시라도 charAt의 설명에 틀린 부분이 있다면 댓글 남겨주시면 감사하겠습니다

JAVA 프로그래밍을 공부하시는데 도움이 되셨으면 좋겠습니다

문자열에서 공백을 제거하는 방법 (trim사용) 

public class Test {

	public static void main(String[] args) {
		
	
		String str = "  대한민국 우리나라 대장  ";
		System.out.println(str.length()); // length()를하면 공백까지 포함한 숫자가 나온다, 즉 공백도 데이터이다 
		
		System.out.println(str);
		System.out.println(str.trim()); // trim 을 사용하여 공백 제거 가능 우측에있는 문자를 왼쪽에 집어넣는다는 개념  
		
		System.out.println(str); // 위에서 공백을 제거해도 실제 str의 공백이 제거된것은 아니다 
		str = str.trim();// 이렇게 해야 str에 공백제거된 문자열이  str에 들어가게 된다
		
		System.out.println(str); 
	}

}

문자열에서 특정문자의 순서찾기(indexOf) , 특정위치에있는 문자 찾기(charAt), 치환 (replace),

특정문자열출력(subString) , 모든문자를 대문자로 (toUpperCase) , 모든문자를 소문자로(toLowerCase)

public class Test {

	public static void main(String[] args) {
		
	
				/** 문자열 특정 글자 찾기 **/ 
				//인터넷에서 내가 원하는 자료를 가져오는것을 크롤링이라고 한다 subString 이랑 indexOf등을 통해 이것이 가능 
				
				String str = "대한민국 우리나라 대장";
				
				System.out.println(str.indexOf("우리"));// indexOf의 시작은 0, 문자열 앞에서 부터 글자를 찾는다
				System.out.println(str.lastIndexOf("우리"));// 문자열 뒤에서 부터 글자를 찾는다 
				System.out.println(str.indexOf("왕자"));// 존재하지 않는 글자는 -1 이 찍힌다
				
				System.out.println(str.charAt(8)); // 특정 위치에 있는 문자 찾기 0부터 시작 
				
				 str = str.replace("우리","메롱");// 우리라는 문자열을 메롱으로 치환 
				 // "대한민국 메롱나라 대장"
				 System.out.println(str);
				 
				 str = str.substring(5); //내가 선택한 숫자부터 문자를 출력
				 // "메롱나라 대장"
				 System.out.println(str);
				 
				 str = str.substring(1,4); //1번부터 4번문자열 까지 나온다 
				 // "롱나라"
				 System.out.println(str);
				 
				 str = "abcDEfG";
				 str = str.toUpperCase(); //모든 문자를 대문자로
				 System.out.println(str);
				 
				 str = str.toLowerCase(); // 모든 문자를 소문자로
				 System.out.println(str);
				 
	}

}

< 백준 1152번 단어의 개수 >

입력 : 영문 대소문자와 공백으로 이루어진 문장

출력 : 단어의 개수

먼저 문자열을 trim()하여 앞뒤 공백을 모두 없앤 후 남은 게 빈 문자열이면 0, 아니라면 단어의 개수를 출력한다.

import java.util.Scanner; 

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); 
		
		int count = 0;
		
		String s = sc.nextLine().trim();
		
		if(s=="")
			System.out.println(0);
		else{
			String l[] = s.split(" ");
			System.out.println(l.length);
		}
	}
}

< 백준 1157번 단어 공부 >

입력 : 영문 대소문자로 이루어진 단어

출력 : 가장 많이 사용된 알파벳을 대문자로 출력

toUpperCase() 함수를 이용해 모든 문자를 대문자로 바꾼 뒤 시작한다.

import java.util.*; 

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); 
		
		int idx = 0, max = 0;
		char cur;
		boolean same = false;
		
		int[] al = new int[26];
		Arrays.fill(al, 0);
		
		String s = sc.nextLine().toUpperCase();	//입력된 단어를 모두 대문자로 변경
		
		for(int i=0; i<s.length(); i++){
			cur = s.charAt(i);
			idx = (int)cur-65;
			
			al[idx]++;
		}
		
		for(int i=0; i<26; i++){
			if(al[i] == max)
				same = true;
			else if(al[i]>max){
				max = al[i];
				idx = i;
				same = false;
			}
		}
		
		if(same)
			System.out.println("?");
		else
			System.out.println((char)(idx+65));
	}
}

문자열을 자르는 방법으로 여러 가지가 있습니다.

그중에서도 split 함수와 charAt 함수를 사용하여 문자열을 한글자씩 자르는 방법을 보겠습니다.

먼저 split 함수를 사용해서 자르는 방법을 보겠습니다.

  split

split 함수 예제

String str = "abcde";

// split 함수에 공백문자를 지정
String[] strArray = str.split("");

for(String s : strArray) {
	System.out.println(s);
}

결과

split 함수에 공백문자를 파라미터로 지정해 문자를 하나씩 잘랐습니다.

자바 버전에 따라 split 함수 반환값이 다르기 때문에 주의해야 합니다.

Java7 버전까지는 반환된 배열의 0번째에는 공백문자가 들어가 있습니다.

Java8 버전 이후에서는 예제의 결과처럼 배열 0번째부터 결과 값이 들어 있습니다.

  charAt

이번에는 charAt 함수를 사용하여 문자열을 자르는 예제를 보겠습니다.

charAt 예제

String str = "abcde";

for(int i = 0; i < str.length(); i++) {

	// charAt 함수로 문자열을 한글자씩 취득
	System.out.println(str.charAt(i));
}

결과

charAt 함수를 사용하는 경우에는 인덱스를 지정해줘야 합니다.

  정리

문자열을 한글자씩 자르는 방법으로 split 함수와 charAt 함수 예제를 보았습니다.

Java7 이전 버전을 사용하여 코딩을 하는 경우는 거의 없지만, 예전에 만들어 놓은 소스를 수정해야 한다면 split 함수를 사용할 때에 주의해서 사용해야 합니다.

split 함수로 문자를 자르는 경우에는 간단하게 소스를 작성할 수 있어 편리하지만 인덱스를 지정해 문자열을 자르고 싶은 경우에는 charAt 함수를 사용하여 문자열을 자르면 가능합니다.