/** * Alias of {@link #toCharArray()} * * @return char array buf copy of this FastStr */ public char[] charArray() { char[] newBuf = new char[size()]; copyTo(newBuf, 0); return newBuf; }
/** * Alias of {@link #toCharArray()} * * @return char array buf copy of this FastStr */ public char[] charArray() { char[] newBuf = new char[size()]; copyTo(newBuf, 0); return newBuf; }
/** * Return char array buf of this FastStr instance. * Note this method might return the char array buf directly * without copy operation * @return the char array buf of this FastStr */ public char[] unsafeChars() { if (begin == 0) return buf; char[] newBuf = new char[size()]; copyTo(newBuf, 0); return newBuf; }
/** * Return char array buf of this FastStr instance. * Note this method might return the char array buf directly * without copy operation * @return the char array buf of this FastStr */ public char[] unsafeChars() { if (begin == 0) return buf; char[] newBuf = new char[size()]; copyTo(newBuf, 0); return newBuf; }
@Override public FastStr append(Character character) { int sz = size(); char[] newBuf = new char[sz + 1]; copyTo(newBuf, 0); newBuf[sz] = character; return new FastStr(newBuf, 0, sz + 1); }
@Override @SuppressWarnings("unchecked") public FastStr prepend(Collection<? extends Character> collection) { int sz = size(), sz2 = collection.size(); if (0 == sz2) return this; if (0 == sz) return of((Collection<Character>) collection); int newSz = sz + sz2, i = 0; char[] newBuf = new char[newSz]; Iterator<? extends Character> itr = collection.iterator(); while (itr.hasNext()) { newBuf[i++] = itr.next(); } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
@Override public FastStr append(Character character) { int sz = size(); char[] newBuf = new char[sz + 1]; copyTo(newBuf, 0); newBuf[sz] = character; return new FastStr(newBuf, 0, sz + 1); }
@Override @SuppressWarnings("unchecked") public FastStr prepend(Collection<? extends Character> collection) { int sz = size(), sz2 = collection.size(); if (0 == sz2) return this; if (0 == sz) return of((Collection<Character>) collection); int newSz = sz + sz2, i = 0; char[] newBuf = new char[newSz]; Iterator<? extends Character> itr = collection.iterator(); while (itr.hasNext()) { newBuf[i++] = itr.next(); } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
public FastStr times(int n) { E.illegalArgumentIf(n < 0, "n cannot be negative"); if (0 == n) return EMPTY_STR; if (1 == n) return this; int sz = size(); if (0 == sz) return this; int newSz = sz * n; char[] newBuf = new char[newSz]; for (int i = 0; i < n; ++i) { copyTo(newBuf, i * sz); } return new FastStr(newBuf, 0, newSz); }
@Override public FastStr append(char... array) { int sz = size(), sz2 = array.length; if (0 == sz2) return this; if (0 == sz) return of(array); char[] newBuf = new char[sz + sz2]; copyTo(newBuf, 0); for (int i = 0; i < sz2; ++i) { newBuf[sz + i] = array[i]; } return new FastStr(newBuf, 0, sz + sz2); }
@Override public FastStr append(char... array) { int sz = size(), sz2 = array.length; if (0 == sz2) return this; if (0 == sz) return of(array); char[] newBuf = new char[sz + sz2]; copyTo(newBuf, 0); for (int i = 0; i < sz2; ++i) { newBuf[sz + i] = array[i]; } return new FastStr(newBuf, 0, sz + sz2); }
public FastStr times(int n) { E.illegalArgumentIf(n < 0, "n cannot be negative"); if (0 == n) return EMPTY_STR; if (1 == n) return this; int sz = size(); if (0 == sz) return this; int newSz = sz * n; char[] newBuf = new char[newSz]; for (int i = 0; i < n; ++i) { copyTo(newBuf, i * sz); } return new FastStr(newBuf, 0, newSz); }
@Override public FastStr prepend(Character character) { // check if I can back begin pointer for one step if (begin > 0) { if (buf[begin - 1] == character) { return FastStr.unsafeOf(buf, begin - 1, end); } } int sz = size(); char[] newBuf = new char[++sz]; newBuf[0] = character; copyTo(newBuf, 1); return new FastStr(newBuf, 0, sz); }
@Override public FastStr prepend(Character character) { // check if I can back begin pointer for one step if (begin > 0) { if (buf[begin - 1] == character) { return FastStr.unsafeOf(buf, begin - 1, end); } } int sz = size(); char[] newBuf = new char[++sz]; newBuf[0] = character; copyTo(newBuf, 1); return new FastStr(newBuf, 0, sz); }
@Override public FastStr prepend(char... chars) { int sz = size(); if (0 == sz) return of(chars); int sz2 = chars.length; if (0 == sz2) return this; if (1 == sz2) { return prepend(chars[0]); } int newSz = sz + sz2; char[] newBuf = new char[newSz]; for (int i = 0; i < sz2; ++i) { newBuf[i] = chars[i]; } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }
@Override public FastStr append(C.List<Character> list) { int sz = size(), sz2 = list.size(); if (0 == sz2) return this; if (0 == sz) return of(list); char[] newBuf = new char[sz + sz2]; copyTo(newBuf, 0); for (int i = 0; i < sz2; ++i) { newBuf[sz + i] = list.get(i); } return new FastStr(newBuf, 0, sz + sz2); }
@Override public FastStr append(C.List<Character> list) { int sz = size(), sz2 = list.size(); if (0 == sz2) return this; if (0 == sz) return of(list); char[] newBuf = new char[sz + sz2]; copyTo(newBuf, 0); for (int i = 0; i < sz2; ++i) { newBuf[sz + i] = list.get(i); } return new FastStr(newBuf, 0, sz + sz2); }
@Override public FastStr prepend(C.List<Character> list) { int sz = size(); if (0 == sz) return of(list); int sz2 = list.size(); if (0 == sz2) return this; if (1 == sz2) { return prepend(list.get(0)); } int newSz = sz + sz2; char[] newBuf = new char[newSz]; for (int i = 0; i < sz2; ++i) { newBuf[i] = list.get(i); } copyTo(newBuf, sz2); return new FastStr(newBuf, 0, newSz); }