java Split如何去除一個空格和多個空格

來源:互聯網
上載者:User

用Split函數可以去除輸入一個字串中的空格,並且一般都是將它儲存在一個字串數組之中

例如:

import java.util.Scanner;    public class Main {          public static void main(String[] args) {          Scanner in = new Scanner(System.in);          String s=in.nextLine();   //如果我輸入:0 1 2 3 4        String[] str=s.split(" ");        System.out.println(s);        System.out.println(str[3]);            }  }  

輸出結果是:

0 1 2 3 4

3


可是會出現這種情況,如果我輸入的是0 1 2   3 4,在2和3之間有3個的空格,那還會有用嗎。

結果輸出是:

0 1 2 (空格)  3 4

(空格)

也就是沒有輸出str[3],至少看上去是這樣的,然後我分析得出結論,其實是這樣的,

舉個例子,我輸入2(空)(空)(空)3,執行Split函數後得到的String str數組

是str[0]=2 ,str[1]=(空),str[2]=(空),str[3]=3

也就是說,Split函數在執行多空格判斷時,會只將第一個空格忽略,其餘空格都放入數組,直到遇到非空格數3,然後後面的情況重複,只有一個空格,情況是結果是理想的,多個空格,又是重複如此


解決方案:

import java.util.Scanner;    public class Main {          public static void main(String[] args) {          Scanner in = new Scanner(System.in);          String s=in.nextLine();        String[] str=s.split("\\s+ ");   //改動這裡        System.out.println(s);        System.out.println(str[3]);            }  }  

利用Regex,就可以實現我們理想的結果,

例如:輸入2(空)(空)(空)3

結果:str[0]=2

             str[1]=3





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.