我有一个字符串"I love stack overflow very much"
如何在字符和制造8个字符之间删除空格?如果没有字符不划分8以使8组添加?如何添加虚拟数据?如何添加虚拟数据以制作8个字符的组?
这是一个单线解决方案,它可以使用正则态度:
:String input = "I love stack overflow very much";
String[] parts = input.replaceAll("\s", "").split("(?<=\G.{8})");
String dummy = "X"; // or whatever placeholder you want
parts[parts.length-1] += new String(new char[8 - parts[parts.length-1].length()]).replace(" ", dummy);
System.out.println(Arrays.toString(parts));
此解决方案在右侧的界限中,将最后一项带有XS,如果最终期限少于8个字符。
输出:
[Ilovesta, ckoverfl, owverymu, chXXXXXX]
public class Run {
public static void main(String[] args) {
String string = "I love stack overflow very much";
//replacing all newline and and then making tokens
String[] words = string.replaceAll("\s", "").split("(?<=\G.{8})");
for (String st : words) {
if (st.length() == 8) { // if length of the string is 8, just print the string
System.out.println(st);
} else {
System.out.print(st);
// printing dummy characters after the final string
for (int i = 0; i < 8 - st.length(); i++) {
System.out.print("X"); // assuming dummy character = X;
}
}
}
System.out.println("n");
// Reverse
for (String st : words) {
if (st.length() == 8) {
System.out.println(new StringBuilder(st).reverse().toString());
} else {
String revString = st;
for (int i = 0; i < 8 - st.length(); i++) {
revString += "X";
}
System.out.println(new StringBuilder(revString).reverse().toString());
}
}
}
}
输出
Ilovesta
ckoverfl
owverymu
chXXXXXX
atsevolI
lfrevokc
umyrevwo
XXXXXXhc