我有一个字符串"I love stack overflow very much"如何删除字符之间的空格并制作 8 个字符的组?



我有一个字符串"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

最新更新