2014-03-27 8 views
0

도움이 필요, 사용자 입력 단어에서 공백과 구두점을 제거해야합니다. 그런 다음 문자를 다시 정렬하여 정렬하십시오 (특정 방법 없음).문자를 정렬하고 문자열에서 구두점을 제거하는 방법 Java

내 문제는 내가 구두점과 공백을 제거하거나 문자를 정렬 할 수 있지만 둘 다 할 수 없다는 것입니다. 그냥 헥스를 출력합니다. 제발 도와주세요.

공용 클래스 Assignment6_main {

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 

    Scanner input = new Scanner(System.in); 
    System.out.println("Enter a string: "); 
    String s = input.nextLine(); 

    sort(s); 

} 

public static void sort(String myString) { 

    char[] chars = myString.toCharArray(); 

// 정렬 문자

Arrays.sort(chars); 

// 구두점과 공백을 제거

String noPuncs = myString.replaceAll("\\W", ""); 

    System.out.println(noPuncs + chars); 

} }

답변

0

거의 들었습니다. 그것은 두 번 이스케이프 할 필요가 것처럼 \ (W)를보고, 당신은 문자를 제거했다 문자열을 정렬 할 경우, 당신은 그냥 인쇄 할 수 있습니다 :

public static void sort(String myString) { 

    String noPuncs = myString.replaceAll("\\W", ""); 

    char[] chars = noPuncs.toCharArray(); 
    Arrays.sort(chars); 
    System.out.println(chars); 

} } 
+0

감사의 말을 너무 많이하며, 이것을 알아 내려고 2 시간을 보냈습니다. 언젠가 자바 제다이가 당신과 닮았기를 바랍니다. – mxgenius

0

수동 문자열로 다시 문자 배열로 변환해야합니다 만드는 방법에 대한 영리

System.out.println(noPuncs + new String(chars)); 

것은 당신이 일반

System.out.println(chars); 

당신은 호출 println 메소드를 수행 할 때 (문자 X []), 모든 것이 멋지게 보이지만 String을 연결하면 기본 배열에서 toString()을 호출하게됩니다.이 배열은 객체 참조를 제공합니다.

0

나는 이것이 당신이 원하는 것이라고 생각합니다. 문자열 FIRST의 모든 공백 문자를 대체 한 다음 문자 배열로 변환하고 정렬합니다. 또한 "noPuncs"는 실제로이 문자열이 아닌 "noWhitespace"여야합니다. 구두점을 아직 삭제하지 않았습니다.

public static void sort(String myString) { 

    String noWhitespace = myString.replaceAll("\\W", ""); 
    char[] chars = noWhitespace.toCharArray(); 
    //sort characters 

    Arrays.sort(chars); 
    //remove punctuation and white space 

    System.out.println(noWhitespace + new String(chars)); 
} 
관련 문제