Java String Indent Format indentLinesAfterNth(final int skip, final int indent, final String str)

Here you can find the source of indentLinesAfterNth(final int skip, final int indent, final String str)

Description

indent Lines After Nth

License

Apache License

Declaration

public static String indentLinesAfterNth(final int skip, final int indent, final String str) 

Method Source Code

//package com.java2s;
/*/*from w w  w  .j a  v  a2s. co  m*/
 * Copyright 2016 Red Hat, Inc, and individual contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class Main {
    public static String indentLinesAfterNth(final int skip, final int indent, final String str) {
        final StringBuilder prefix = new StringBuilder();
        for (int i = 0; i < indent; i++) {
            prefix.append(' ');
        }
        final StringBuilder out = new StringBuilder();
        final String[] lines = str.split("\\n");
        int count = 0;
        for (String line : lines) {
            if (count >= skip) {
                out.append(prefix);
            }
            out.append(line);
            if (count < lines.length - 1) {
                out.append('\n');
            }
            count++;
        }

        return preserveFinalNewline(str, out.toString());
    }

    private static String preserveFinalNewline(final String orig, final String out) {
        return out + (orig.endsWith("\n") ? "\n" : "");
    }
}

Related

  1. indentationStringOfCursorLine(String text, int cursor)
  2. indentCode(String code, int indentLevel)
  3. indented(String indenter, String s)
  4. indentHtmlSpaces(int count)
  5. indention(int level, int tabSize)
  6. indentMultilineValue(String value, StringBuilder tableInfo, int[] columnWidths, boolean printNull)
  7. indentNextLines(String text, String indent)
  8. indentParagraph(String textBefore, String textToModify)
  9. indentRows(int level, String ss, String indentStr)