java - 旋转列表<字符>并维护字数

标签 java string arraylist rotation

我试图将字符串逐行旋转到右侧(输入来自文件)。输入可能有很多行,因此需要每行进行旋转。

例如,将其向右旋转 5 and line breaks^$@ 最终会是:^$@ and line breaks .

我正在使用List<String>并做了以下工作:

 private static List<String> rflag(String value, List<String> lines) {
    List<String> newLines = new ArrayList<>();

    int rvalue = Integer.parseInt(value);

    for (String line : lines) {
        StringBuilder sb = new StringBuilder();

        if (!line.isEmpty()) {
            List <Character> chars=  new ArrayList<>();

            for(char ch: line.toCharArray()){
                chars.add(ch);
            }

            Collections.rotate(chars, rvalue);

            sb.append(chars);
            String text = sb.toString()
                    .replace(",", "")  //remove the commas
                    .replace("[", "")  //remove the right bracket
                    .replace("]", "")  //remove the left bracket
                    .trim();
            newLines.equals(text);
        }
    }
    return newLines;
}

如果我输入类似 abcXYZ 的内容,我的输出最终是 [b, c, X, Y, Z, a]bcXYZa删除括号和逗号。

我的主要问题是,虽然我可以删除括号和逗号,但我不会保留输入中的行或单词。

最佳答案

改变

.replace(",", "")  //remove the commas

.replace(", ", "")  //remove the commas

使此代码按您的预期工作。

System.out.println(rflag("2", Arrays.asList("and line breaks"))); //output: ksand line brea

(和换行符^$@ ,当前输出是^ $ @ a n d l i in e b e a k s,但应该是^$@和换行符 .)

关于java - 旋转列表<字符>并维护字数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53408286/

相关文章:

java - 有条件地组合两组

arraylist - 是否可以创建一个具有 log(n) 复杂度的 ArrayList 属性的 Map?

java - 我如何知道文件类型是否为 PDF?

java - 是否有在数字屏幕上绘制 2d 对象的通用方法

java/jetty 重载一段时间后不响应连接

java - 如何在 Java 中检查单个单词中的非单词字符?

string - Clojure - 在不丢失分隔符的情况下拆分字符串

javascript - 您可以将自定义变量传递到 Google Analytics 事件跟踪中吗?

JAVA如何创建一维和多维数组

java - 使用对象的字段过滤 ArrayList