2014-06-23 5 views
0

다른 문자열에서 가져온 알파벳 순서로 문자열을 만드는 방법은 무엇입니까?Java가 제대로 정렬되지 않음

의 내가 나는 그것이 theWord하지만 알파벳 순서로 문자 단위로 정렬 된 "

ehllo 

처럼 보이게하기 위해 새로운 String를 계산 할 방법이

String theWord = "Hello"; 

같은 있다고 가정 해 봅시다.

나는 이걸 생각해 냈지만 왜 작동하지 않는지는 잘 모르겠다. 그냥 "Hello"를 출력한다.

char[] chars = theWord.toCharArray(); 
Arrays.sort(chars); 
String newWord = new String(chars); 
System.out.println(newWord); 
+2

대문자는 소문자 앞에옵니다. – awksp

+1

왜 자바를 비난합니까? Java는 문서화가 잘되어 있으며 정확히 무엇을하고 있는지 알려줄 것입니다. [프로그래밍의 첫 번째 규칙.] (http://blog.codinghorror.com/the-first-rule-of-programming-its-always-your-fault/) –

답변

2

예. 왜냐하면 자본 H는 소문자 앞에 있기 때문입니다.

String theWord = "hello"; 

출력, 당신은

ehllo 
+0

빠른 해결책은'char [] chars = theWord.toLowercase(). toCharArray();'그러나 그것은 정렬 된 단어가 모두 소문자임을 의미합니다. 나중에 참조 할 수 있도록 문자는 ASCII 테이블에 따라 정렬되며,이 테이블을 통해 쉽게 쉽게 Google을 검색 할 수 있습니다. –

+0

@PerryMonschau ASCII로 표시된 마지막 문자는 무엇입니까? –

+0

이제 유니 코드 문자를 허용하는지 여부에 따라 다릅니다. 문자는 문자가 아니라 줄 바꿈, 백 스페이스 등의 텍스트 명령입니다. 8 비트 모델에서 DEL 명령은 마지막 문자이지만 z는 마지막 문자입니다. 그러나 유니 코드에는 외국어 문자 및 수학 기호를 포함하여 수백만 자의 문자가있을 수 있습니다. 그래서 그것은 당신의 의도가 얼마나 중요한지에 달려 있습니다. –

0

종류의 첫 번째 문자를 대문자로 분류에서 와 소문자 뒤에 (코드에 다른 변화) 예상대로. 예를 들어, H가 대문자 인 경우 처음 입력 문자열을 HEllo으로 입력하면 결과는 EHllo이된다고 가정합니다. 또한 대문자, 소문자 및 숫자의 입력 문자열 조합을 제공하는 경우 sort() 메서드는 먼저 숫자를 정렬 한 다음 대문자와 소문자를 차례로 정렬합니다. 예제 입력 문자열을 HEllo397으로 입력하면 379EHllo

이라는 결과가 나오므로 코드에는 아무런 문제가 없습니다.

관련 문제