2012-02-15 74 views
2

我該如何編寫邏輯來連接所有後面用Java中的空格分隔的後面的單詞? 例如String「a b c corporation」應該是「abc corporation」的結果。在Java中連接由空格分隔的單個字符?

+0

+ 1.第一眼看起來很容易,但事實並非如此。好問題。 – shift66 2012-02-15 06:59:07

+0

如果您使用它作爲商業名稱,則可能還需要考慮標點符號。例如'J.P.摩根','J. P. Morgan和J P Morgan都是寫這個公司名稱的常用方式,但他們都會以僅考慮空白的算法出現。 – gutch 2012-02-15 07:24:32

回答

3

給予指針 - 請編寫自己!

  1. 在空間char上使用string.split []。
  2. 使用StringBuilder
  3. 環在從分裂

    3.1獲得數組如果值是lenght 1的,附加到SB

    3.2如果該值> 1個lenght,具有附加SB中的空間。

+0

這是行不通的,因爲從「a b cde f g」你會得到「abcde fg」 – 2012-02-15 07:20:08

+1

你可能需要微調代碼來在長度大於1的字符串前後添加空格。另外請注意,如果這樣的字符串是最後一個元素,那麼它之前的空間就足夠了。祝一切順利。 – Jayy 2012-02-15 07:24:37

+0

@PetarIvanov:是的,必須有一些微調。我只是想給OP一個想法,如果他照顧細節使其工作起來,那麼對他來說是一個很好的學習! – Nrj 2012-02-15 09:53:20

2

您可以使用正則表達式與前瞻和回顧後替換:

String orig = "a b c corporation d e f"; 

    String replaced = orig.replaceAll("(?<=(^|)[a-zA-Z]) +(?=[a-zA-Z](|$))", ""); 
+0

爲什麼選擇downvoted?它不起作用嗎?你可以解釋嗎? – 2012-02-15 07:18:06

+0

這不能正常工作:'一家公司'變成'一家公司' - 第一個字母后面仍有空格。 – gutch 2012-02-15 07:18:20

+0

它將「a b c corporation d e f」的輸出提供爲「abc corporation def」它缺少一些東西。 – sjain 2012-02-15 07:21:11

相關問題