2013-05-19 6 views
2

안녕 char 배열의 각 char이 소문자이거나 대문자인지 확인하는 코드 세그먼트를 작성하려고합니다. 현재 char의 ASCII 번호를 사용하여 확인합니다. 그것이 대문자로 문자를 변환해야합니다 확인 후에는 아직없는 경우 :문자 배열의 소문자 문자를 대문자로 변환 (Java)

for (int counter = 0; counter < charmessage.length; counter++) { 
    if (91 - charmessage[counter] <= 0 && 160 - charmessage[counter] != 0) { 
    charmessage[counter] = charmessage[counter].toUpperCase(); 
    } 
} 

charmessage 이미 프로그램에서 이전에 초기화됩니다. 160 부분은 공간을 대문자로 변환하지 않는 것입니다. .toUpperCase 메서드를 작동 시키려면 어떻게합니까?

+1

"Character"문서에서 한 가지 더 : "일반적으로 'String.toUpperCase()'는 문자를 대문자로 매핑하는 데 사용해야합니다. 문자열 케이스 매핑 메소드는 Character 케이스 매핑 메소드보다 몇 가지 이점이 있습니다. 매핑 방법은 로케일 구분 매핑, 상황에 맞는 매핑 및 1 : M 문자 매핑을 수행 할 수 있지만 Character 대/소문자 매핑 방법은 수행 할 수 없습니다. " 계속 염두에 두어야 할 것 : – T045T

답변

1

나는 이렇게 할 것이다. 먼저 문자가 문자인지 소문자인지 확인하십시오. 이것은 단지

if(Character.isLetter(charmessage[counter]) && Character.isLowerCase(charmessage[counter])){ 
    charmessage[counter] = Character.toUpperCase(charmessage[counter]); 
} 
+0

고마워요! 나는 그것이 존재한다는 것을 몰랐기 때문에 나는 단지 ASCII를 사용하여 그것을했다. –

+2

isLetter() 테스트는 중복되거나 너무 제한적입니다. isLowerCase()에 대해서는 Javadoc을 참조하십시오. 실제로 전체 테스트도 마찬가지입니다. toUpperCase()에 대한 Javadoc을 참조하십시오. – EJP

1

을 Character.toUpperCase (숯불 채널)를 사용하면 당신은 그에 대한 Character#toUpperCase를 사용할 수 있습니다. 예 :

char a = 'a'; 
char upperCase = Character.toUpperCase(a); 

일부 제한 사항이 있습니다. 세계가 16 비트 범위 내에 들어갈 수있는 더 많은 문자를 알고 있다는 사실을 알고 있어야합니다.

관련 문제