这是方法。我想知道我是否违反了这里的最佳做法,或者就语言而言我做错了什么。
private List<String> breakStringInChunks(String text, int chunkSize) { List<String> chunks = new ArrayList<String>(); String temporary = ""; int numberOfChunks = text.length() / chunkSize; int beginIndex = 0; int endIndex = 0; // Add one iteration if numberOfChunks*chunkSize is less than the length of text. if ((numberOfChunks * chunkSize) < text.length()) { numberOfChunks++; } // Cut strings and add in the list. for (int i = 0; i < numberOfChunks; i++) { endIndex+=chunkSize; if ((i + 1) == numberOfChunks) { temporary = text.substring(beginIndex); } else { temporary = text.substring(beginIndex, endIndex); } beginIndex=endIndex; chunks.add(temporary); } return chunks; }
仍然保持简明扼要,并避免可能调整结果列表的大小。
private static List<String> breakStringInChunks(final String text, final int chunkSize) { final int numChunks = 0 == (text.length() % chunkSize) ? text.length() / chunkSize : 1 + (text.length() / chunkSize); final List<String> chunks = new ArrayList<String>(numChunks); for (int startIndex = 0; startIndex < text.length(); startIndex += chunkSize) { final int endIndex = Math.min(text.length(), startIndex + chunkSize); chunks.add(text.substring(startIndex, endIndex)); } return chunks; }