首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 字串按固定長度分割:完整註解版實作

     編輯:程式設計疑難解答

需求:將字串按指定字元長度切割成陣列,最後一段長度可能不足。

程式碼與逐行註解

public String[] split(String str, int chars) {
    // 計算分割段數:(長度 + chars - 1) / chars 等同向上取整
    int n = (str.length() + chars - 1) / chars;
    String[] ret = new String[n]; // 配置結果陣列
    for (int i = 0; i < n; i++) { // 遍歷每一段
        if (i < n - 1) {
            // 非最後一段:固定長度 substring(起始, 結束)
            ret[i] = str.substring(i * chars, (i + 1) * chars);
        } else {
            // 最後一段:從起始切到字串結尾
            ret[i] = str.substring(i * chars);
        }
    }
    return ret;
}

關鍵點

  • (len + chars - 1) / chars:整數運算實現向上取整,避免浮點數。
  • substring(begin, end):end 為不包含的索引。
  • 邊界情況:空字串回傳長度 1 的陣列(含一個空字串),可視需求調整。

Java 8+ 替代方案

// 使用正則表達式(. 代表任意字元)
String[] parts = str.split("(?<=\\G.{" + chars + "})");

手寫迴圈效能更穩定,且易於擴展(如補齊、編碼轉換)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved