java
2012-09-04 2 views 0 likes 
0

안녕 얘들 아 루프를 사용하여 공백을 제거하려면 노력하고있어. Heres는 내가 지금까지 가지고 올 한 내용루프를 사용하여 문자열에서 공백 제거

import java.util.Scanner; 
    public class Q2 { 

public static void main(String[] args) { 

    String input = ""; 
    char noSpace = ' '; 

    Scanner scan = new Scanner(System.in); 
    input = scan.nextLine(); 
    System.out.println(input); 

    for (int i = 0; i < input.length(); i++) { //search from right to left 
     for (int j = input.length(); j != -1; j--) { //search from left to right 
      if (input.charAt(i) == noSpace) { //if there is a space move position of i and j 
       i++; 
       j--; 
      } 




    } 
    System.out.println(input); 

나는 자바에 여전히 매우 새로운 오전, 어떤 제안은 큰 감사가 될 것입니다!

+0

귀하의 질문에 무엇 무엇인지 아무것도 새로운, 바로 실행 가능한 예제? – maba

+1

Character.isWhitespace()를 사용하여 간단하게 ... http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html#isWhitespace(char) – Adam

+2

개인적으로, [regex] (http://docs.oracle.com/javase/tutorial/essential/regex/intro.html). 예 :'sText = sText.replaceAll ("\\ s +", "");' – paulsm4

답변

1

정규식을 사용하지 않는 이유는 무엇입니까? replaceAll("\\s","")은 모든 공백을 제거합니다.

public class RemoveWhiteSpace { 

    public static void main(String[] args) { 

     String str = "Hello World... Hai...    How are you?  ."; 
     for(Character c : str.toCharArray()) { 
      if(!Character.isWhitespace(c)) // Check if not white space print the char 
       System.out.print(c); 
     } 
    } 
} 
+0

내가 언급 한 것과 같은 다른 빠른 대안을 잘 알고 있습니다. . 루프와 카운터를 더 잘 이해할 수 있도록이 특정 방식으로 작업하려고합니다. –

+0

공백은 탭과 같은 것을 포함 할 수 있음을 잊지 마세요. – MadProgrammer

0
public class sample { 

public static void main(String[] args) { 

    String input = "sample test"; 
    char noSpace = ' '; 
    System.out.println("String original:"+input); 

    for (int i = 0; i < input.length(); i++) { //search from right to left 
     if (input.charAt(i) != noSpace) { //if there is a space move position of i and j 
      System.out.print(input.charAt(i)); 
     } 
    } 

    } 
    } 
4

이 하나의 시도 등 \ 탭과 같은 다른 비 표시 문자를 제거 할 수 있습니다 두 개의 루프를 유지하면 하나만 가능합니다 :

public static void main(String[] args) { 
    String input = ""; 
    char space = ' '; 

    Scanner scan = new Scanner(System.in); 
    input = scan.nextLine(); 
    System.out.println(input); 

    for (int i = 0; i < input.length(); i++) { // search from right to left char by char 
     if (input.charAt(i)!= space) { // if the char is not space print it. 
      System.out.print(input.charAt(i)); 
     } 
    } 
} 
+0

+1은 'isWhiteSpace'를 사용합니다. – MadProgrammer

0

당신은 실제로 너무 멀리 갔어요 : 또한 당신은 더 많은 정보를 원하시면 docs.oracle.com에서

봐가

1

그리고 주제의 조합 ...

StringBuilder result = new StringBuilder(64); 
String str = "sample test"; 
for (Character c : str.toCharArray()) { 
    if (!Character.isWhitespace(c)) { 
     result.append(c); 
    } 
} 

System.out.println(result.toString()); // toString is not required, but I've had to many people assume that StringBuilder is a String 
System.out.println(str.replace(" ", "")); 
System.out.println("Double spaced".replace(" ", "")); 

기본적으로, 다른 사람에 대해 말씀 온몸 ...

관련 문제