這題主要有個思想直接體會:方向思維解決問題更方便
package com.pagination.plus.workTrain;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/** *連續輸入字符串,請按長度為8拆分每個字符串后輸出到新的字符串數組; * 長度不是8整數倍的字符串請在后面補數字0,空字符串不處理。 * 連續輸入字符串(輸入2次,每個字符串長度小於100) * 輸出到長度為8的新字符串數組 */
public class Main {
public static void main(String[] args) throws IOException {
//BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\JavaData\\tmp/input.txt")));
//Scanner sc = new Scanner(System.in);
String s = null;
while ((s=bufferedReader.readLine())!=null) {
StringBuilder sb = new StringBuilder();
String str = s.trim();
for (int i=0;i<str.length();i++) {
if(' '!=str.charAt(i)){
sb.append(str.charAt(i));
}
}
//System.out.println(sb.toString());
//第一種復雜方法,正邏輯處理:考慮先分段在是否補0
/* if(sb.length()>0&&sb.length()<8){ int cout = 8-sb.length(); while (cout>0){ sb.append(0); cout--; } System.out.println(sb.toString()); }else if(sb.length()==8){ System.out.println(sb.toString()); }else{ int segmets = sb.length()/8; int mod = sb.length()%8; for(int i=0,j=0;i<segmets;i++,j+=8){ System.out.println(sb.substring(j,j+8)); } if(mod!=0){ String substring = sb.substring(sb.length() - mod, sb.length()); StringBuilder stringBuilder = new StringBuilder(substring); for(int i=0;i<8-mod;i++){ stringBuilder.append(0); } System.out.println(stringBuilder.toString()); } }*/
//第二種簡單方法,反向思維,首先判斷是否需要補0,然后直接一個方法搞定
if(sb.length()%8!=0){
for(int i=0;i<8;i++){
sb.append(0);
}
}
for(int i=0,j=0;i<sb.length()/8;i++,j+=8){
System.out.println(sb.substring(j,j+8));
}
}
}
}