본문 바로가기



프로그래밍/JAVA

[JAVA] String class indexOf를 이용한 알파벳순서찾기

string class에 여러가지 생성자와 메서드가 들어있는데 그중 indexOf를 사용해보도록 하자. 가장 생각해내기 쉬운게 영어 알파벳에서 몇번째인지 알아내는 것일것이다. 코드를 다음과 같이 작성한다. 

import java.util.Scanner;

public class whichismyInputNextInt {

	public static void main(String[] args) {
		String abc = "abcdefghijklmnopqrstuwvxyz";
		
		
		Scanner sc= new Scanner(System.in);
		System.out.println("순서를 찾을 알파벳을 입력하십시오");
		String scinput= sc.nextLine();

		char c = scinput.charAt(0);
		if (c >= 0x61 && c <= 0x7A || c >=0x41 && c <= 0x5) {
		
			int idx1 = abc.indexOf(scinput);
			
			int idx2 = idx1+1; // 인간 순서변환 
			System.out.println("입력하신 알파벳은 "+idx2+"번째 입니다.");
			
		}else {
			System.out.println("입력하신 값이 알파벳이 아닙니다");
		}

	}

}

 

보통 Scanner 입력을 받을때 nextInt로 제한하는 경우가 있는데 이경우는 문자를 받아야하기 때문에 nextLine()으로 입력받도록 했다. 이후에 문자를 하나만 받을것이므로 char를 이용해서 char형 데이터로 변환한다. 이것을 소문자혹은 대문자 코드안에 들어있을때만 작동하도록 if문을 사용하였다. 그리고 실제 인덱스는 1부터 시작하므로 자바인덱스에 +1을 하였다.

숫자를 입력하면 알파벳이 아니라고 나온다. 

알파벳을 입력하면 숫자가 제대로 나온다.