簡體   English   中英

在重復字符之間拆分字符串

[英]Split a string between repeating characters

我想取任何給定的字符串並根據重復的字符拆分它。

舉個例子,如果我輸入字符串abcaaabbc ,我想輸出一個等於的字符串數組: [abca, a, ab, bc] 每次重復一個字符時,我都想開始一個新的字符串。

當然,可以使用循環執行此操作,但我想知道是否可以使用String.split()方法實現它。 如果是這樣 - RegEx會是什么?

對前一個字符(后視(?<=(.)) )與下一個字符(前瞻(?=\\\\1) )相同並且\\1捕獲(.)的輸入字符串進行標記。

    String str = "abcbabaaabbc";
    String regex = "(?<=(.))(?=\\1)";        
    System.out.println(Arrays.toString(str.split(regex)));

從性能的角度來看,我會堅持循環。 它在O(n)時間內運行。 已知string.split(正則表達式)很慢。 我最近使用它代替循環,發現與O(n)循環相比它是O(n ^ 2)。

KISS校長在這里工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM