< prev index next >

src/java.base/share/classes/java/lang/StringLatin1.java

Print this page
rev 54939 : 8223775: String::stripIndent (Preview)

*** 745,824 **** } static LinesSpliterator spliterator(byte[] value) { return new LinesSpliterator(value, 0, value.length); } - - static LinesSpliterator spliterator(byte[] value, int leading, int trailing) { - int length = value.length; - int left = 0; - int index; - for (int l = 0; l < leading; l++) { - index = skipBlankForward(value, left, length); - if (index == left) { - break; - } - left = index; - } - int right = length; - for (int t = 0; t < trailing; t++) { - index = skipBlankBackward(value, left, right); - if (index == right) { - break; - } - right = index; - } - return new LinesSpliterator(value, left, right - left); } ! private static int skipBlankForward(byte[] value, int start, int length) { ! int index = start; ! while (index < length) { ! char ch = getChar(value, index++); ! if (ch == '\n') { ! return index; ! } ! if (ch == '\r') { ! if (index < length && getChar(value, index) == '\n') { ! return index + 1; ! } ! return index; ! } ! if (ch != ' ' && ch != '\t' && !Character.isWhitespace(ch)) { ! return start; ! } ! } ! return length; ! } ! ! private static int skipBlankBackward(byte[] value, int start, int fence) { ! int index = fence; ! if (start < index && getChar(value, index - 1) == '\n') { ! index--; ! } ! if (start < index && getChar(value, index - 1) == '\r') { ! index--; ! } ! while (start < index) { ! char ch = getChar(value, --index); ! if (ch == '\r' || ch == '\n') { ! return index + 1; ! } ! if (ch != ' ' && ch != '\t' && !Character.isWhitespace(ch)) { ! return fence; ! } ! } ! return start; ! } ! } ! ! static Stream<String> lines(byte[] value, int leading, int trailing) { ! if (leading == 0 && trailing == 0) { return StreamSupport.stream(LinesSpliterator.spliterator(value), false); - } else { - return StreamSupport.stream(LinesSpliterator.spliterator(value, leading, trailing), false); - } } public static void putChar(byte[] val, int index, int c) { //assert (canEncode(c)); val[index] = (byte)(c); --- 745,758 ---- } static LinesSpliterator spliterator(byte[] value) { return new LinesSpliterator(value, 0, value.length); } } ! static Stream<String> lines(byte[] value) { return StreamSupport.stream(LinesSpliterator.spliterator(value), false); } public static void putChar(byte[] val, int index, int c) { //assert (canEncode(c)); val[index] = (byte)(c);
< prev index next >