2014-03-12 28 views
0

我需要從它刪除所有空格。如何刪除空間的字符串(句子)

如:這是我的代碼 O/P:Thisismycode

這是到目前爲止我的代碼。

import java.util.Scanner; 
public class nospace{ 

public static void main(String args[]){ 

    Scanner s=new Scanner(System.in); 

    System.out.println("Enter a String"); 
    String N=s.nextLine(); 
    N=N.trim(); 
    N=N+" "; 
    int l=N.length(); 
    int a=0; 
    for(int i=0;i<=l-1;i++){ 
     if(N.charAt(i)==32){ 
    System.out.println(N.substring(a,i+1)); 
    } 
    a=i; 

    } 

} 

} 

所有它打印每個單詞的最後一個字母。任何幫助表示讚賞。

+0

可能重複【JAVA:從字符串中刪除字符的所有出現(http://stackoverflow.com/questions/4576352/java-remove-all-occurances-of-炭從串) – aruisdante

回答

5

您可以嘗試我們這段代碼

N.replaceAll("\\s+","") 

這說明你替換字符串對象內的所有空格爲空字符串(「」)。部分"\\s+"被稱爲正則表達式,並與replaceAll組合刪除所有空格和不可見字符,如選項卡。 另請注意,st.replaceAll("\\s","")會產生相同的結果。第二個正則表達式比第一個更快。但是,我們增加數量的連續空間,第一個執行比第二

+0

爲的replaceAll的一般文檔是可用的[這裏](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll%28java.lang。 String,%20java.lang.String%29) – aruisdante

+2

一個簡單的replace(「」,「」)'就足夠了,並且不涉及正則表達式。 –

2

我會建議使用Java的字符串的replaceAll功能較好。你給它,你正在尋找替換正則表達式,你要替換它的內容:

string.replaceAll("\\s+", ""); 

所以,你的代碼應該是這樣的:

import java.util.Scanner; 
public class nospace{ 

public static void main(String args[]){ 

    Scanner s=new Scanner(System.in); 

    System.out.println("Enter a String"); 
    String input=s.nextLine(); 
    input = input.replaceAll("\\s+", ""); 
    System.out.println(input); 

} 

} 

我從改變了你的輸入變量N輸入 - 在Java中,您不應該使用大寫字母來啓動變量的名稱。另外,我還刪除了一些其他行,例如在輸入字符串的末尾添加一個空格,然後創建l和一個變量。

0

試試這個:

public class RemoveExtraspaces { 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     String str=" Hello and welcome ! let's start coding "; 
     char prev; 
     char current; 
     String punc="?,.!"; 
     String result = ""; 
     for(int i=1;i<str.length();i++){ 
      current=str.charAt(i); 
      prev=str.charAt(i-1); 
      if(current==' ' && prev==' ' && punc.indexOf(current)<0){ 
       prev=current; 
      } 
      else if(punc.indexOf(current)>0){ 
       if(prev==' ') 
        result=result.substring(0,result.length()-1); 
        result=result+current; 
      } 
      else { 
       result=result+current; 
      } 
     } 
     System.out.println(result); 

    } 


} 
+0

這是刪除多餘的空格。其他人正試圖消除所有空間 –