2017-07-23 71 views
0

我有這個長字符串 「Ab1ac2axd3nxn70-00-0-0」 對於我的生活,我無法弄清楚如何將java中的字符串分隔開來這個。 「Ab1 ac2 axd3 nxn7 0-0 0-0-0」 我想我需要使用分隔符,但我不知道所需的格式我想要的代碼,也不知道如何正確地寫它。如何格式化長字符串以在每個數字後添加空格

它可能有助於知道0只會出現在形式「0-0」或「0-0-0」,如果它連接到字母它只會是這樣ab30-0現在我不想要在破折號和零之間放置空格,但是如果發生這種「0-00-0-0」,我希望它被格式化爲這樣「0-0 0-0-0」

+2

首先決定你真正想做什麼。你的標題說一件事---在每個字母后加一個空格 - 但你的例子說另一個---在每個由一些字母組​​成的序列後面加一個數字後插入一個空格。 –

+0

對不起,我的意思是標題中的數字 – Dporth

+0

每個'0'後面都沒有空格。 – Marvin

回答

1

這將解決您的問題。可能有一個更優雅的解決方案,但這絕對有效:

public class Delimiter { 
    public static void main(String[] args) { 
    String input = "Ab1ac2axd3nxn70-00-0-0"; 
    int l = input.length() - 1; 
    char[] inputChars = input.toCharArray(); 
    StringBuilder output = new StringBuilder(); 

    for (int i = 0; i < l; i++) { 
     char c = inputChars[i]; 
     output.append(c); 

     if (Character.isDigit(c) && inputChars[i+1] != '-') 
     output.append(' '); 
    } 

    output.append(inputChars[l]); 
    System.out.println(output.toString()); 
    } 
} 
+0

謝謝,像魅力一樣工作 – Dporth

相關問題