2017-12-29 20 views
0

내 프로그램은 대문자와 함께 단어를 역순으로 인쇄해야하며 모든 줄 끝에 점을 찍어 내야합니다. 점 앞의 마지막 공백을 삭제하는 것을 도와 주실 수 있습니까?Array의 마지막 공백 삭제 - java

public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    int pocet = sc.nextInt(); 
    sc.nextLine(); 
    for (int i = 0; i < pocet; i++) { 
     String veta = sc.nextLine(); 
     String veta2=veta.replaceAll("\\s+"," "); 
     String[] words = veta2.split(" "); 
     String result = ""; 
     for (int j = 0; j<words.length;j++){ 
      for (int k = words[j].length(); k > 0; k--) { 
      result = result + words[j].substring(k - 1, k); 

      } 
     words[j] = result; 
     result = ""; 
     //return result.replaceAll("\\s+$", ""); 
     } 

     words[words.length-1]= words[words.length-1]; 

     System.out.println(); 

    for (int j =0; j<words.length; j++){ 
     char whitespace = ' '; 
     System.out.print(words[j].toUpperCase()+whitespace); 
    } 
    } 
    System.out.print("."); 
    System.out.println(); 

    }  
} 

감사

+0

작동하지 않는 기능, resp. 귀하의 질문은 무엇인가? – 1stthomas

+0

결과가 포함 된 테스트 시나리오를 추가하고 예상되는 결과를 나타냅니다. – cdaiga

+0

[String.join] (https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#join-java)을 사용하여 Java 8부터 직접 수행 할 필요조차 없습니다. .lang.CharSequence-java.lang.CharSequence ...-). 더 나은 답변을 위해 [mcve]를 제공해주십시오. – AxelH

답변

0

아래의 코드에 의해 당신에 대한 교체 : 그냥 String.join를 사용

for (int j =0; j<words.length; j++){ 
    char whitespace = ' '; 
    System.out.print(words[j].toUpperCase()); 
    if (j < (words.length - 1)) { 
     System.out.print(whitespace); 
    } 
} 

그런 식으로, 당신은 당신의 배열

0

의 마지막 단어를 제외하고 공백을 추가합니다 각각의 String을 루프 (for) 대신에 CharSequence (여기서는 공백)으로 구분하여 연결하십시오.

String wordString = String.join(" ", words); 

여기에서 아무 것도 제거 할 필요가 없습니다. 결과를 인쇄하기 전에 대문자로 변환해야합니다.

wordString = wordString.toUpperCase() 
System.out.println(wordString); 
0

공공 정적 무효 메인 (문자열 []에 args) = 새로운 스캐너 { 스캐너 (System.in);

System.out.printf("Please insert number of lines you want to enter: ");   
    String[] input = new String[in.nextInt()]; 
    in.nextLine(); 

    for (int i = 0; i < input.length; i++) { 
     input[i] = in.nextLine(); 
    } 
    String output = null; 
    for(int i=0;i<input.length;i++) { 
     output=""; 
     String[] lst = new String[input[i].split(" ").length]; 
     lst = input[i].split(" "); 

     for(int j = lst.length-1; j >= 0; j--) { 

      output+=(j==0)?lst[j]+".":lst[j]+" "; 
     } 
     System.out.println(output); 
    } 

}