public final class StringSupport extends Object
Modifier and Type | Class and Description |
---|---|
static class |
StringSupport.NeighborChar |
static class |
StringSupport.TR
rb_str_tr / rb_str_tr_bang
|
static class |
StringSupport.TrTables
tr_setup_table
|
Modifier and Type | Field and Description |
---|---|
static int |
CR_7BIT |
static int |
CR_BROKEN |
static int |
CR_MASK |
static int |
CR_UNKNOWN |
static int |
CR_VALID |
static String[] |
EMPTY_STRING_ARRAY |
static int |
TRANS_SIZE |
static Object |
UNSAFE |
Constructor and Description |
---|
StringSupport() |
Modifier and Type | Method and Description |
---|---|
static org.jruby.util.ByteList |
addByteLists(org.jruby.util.ByteList value1,
org.jruby.util.ByteList value2) |
static boolean |
areComparable(CodeRangeable string,
CodeRangeable other) |
static boolean |
areComparableViaCodeRange(CodeRangeable string,
CodeRangeable other) |
static org.jcodings.Encoding |
areCompatible(CodeRangeable string,
CodeRangeable other)
rb_enc_compatible
|
static void |
associateEncoding(CodeRangeable string,
org.jcodings.Encoding enc) |
static int |
bytesToFixBrokenTrailingCharacter(byte[] bytes,
int begin,
int byteSize,
org.jcodings.Encoding encoding,
int usingLength) |
static int |
bytesToFixBrokenTrailingCharacter(org.jruby.util.ByteList val,
int usingLength) |
static int |
caseCmp(byte[] bytes1,
int p1,
byte[] bytes2,
int p2,
int len) |
static RubyString |
checkEmbeddedNulls(Ruby runtime,
IRubyObject ptr) |
static void |
checkStringSafety(Ruby runtime,
IRubyObject value)
Check whether input object's string value contains a null byte, and if so
throw SecurityError.
|
static int |
choppedLength19(CodeRangeable str,
Ruby runtime)
MRI: chopped_length
|
static int |
codeLength(org.jcodings.Encoding enc,
int c) |
static int |
codePoint(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end) |
static int |
codePoint(Ruby runtime,
org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end) |
static String |
codeRangeAsString(int codeRange) |
static int |
codeRangeScan(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int len) |
static int |
codeRangeScan(org.jcodings.Encoding enc,
org.jruby.util.ByteList bytes) |
static long |
codeRangeScanRestartable(org.jcodings.Encoding enc,
byte[] bytes,
int s,
int end,
int cr) |
static int |
CONSTRUCT_MBCLEN_CHARFOUND(int n) |
static int |
countCommon19(org.jruby.util.ByteList value,
Ruby runtime,
boolean[] table,
StringSupport.TrTables tables,
org.jcodings.Encoding enc)
rb_str_count
|
static CodeRangeable |
delete_bangCommon19(CodeRangeable rubyString,
Ruby runtime,
boolean[] squeeze,
StringSupport.TrTables tables,
org.jcodings.Encoding enc)
rb_str_delete_bang
|
static org.jruby.util.ByteList |
dumpCommon(Ruby runtime,
org.jruby.util.ByteList byteList)
rb_str_dump
|
static int |
encFastMBCLen(byte[] bytes,
int p,
int e,
org.jcodings.Encoding enc) |
static String |
escapedCharFormat(int c,
boolean isUnicode) |
static long |
getAscii(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end) |
static long |
getAscii(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end,
int len) |
static int |
hexLength(byte[] bytes,
int p,
int len) |
static int |
hexLength(byte[] bytes,
int p,
int len,
org.jcodings.Encoding enc) |
static int |
index(CodeRangeable sourceString,
CodeRangeable otherString,
int offset,
org.jcodings.Encoding enc) |
static boolean |
isAsciiOnly(CodeRangeable string) |
static boolean |
isEVStr(byte[] bytes,
int p,
int end) |
static boolean |
isEVStr(int c) |
static boolean |
isIncompleteChar(int b) |
static boolean |
isSingleByteOptimizable(CodeRangeable string,
org.jcodings.Encoding encoding) |
static boolean |
isUnicode(org.jcodings.Encoding enc) |
static int |
length(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end) |
static int |
MBCLEN_CHARFOUND_LEN(int r) |
static boolean |
MBCLEN_CHARFOUND_P(int r) |
static boolean |
MBCLEN_INVALID_P(int r) |
static boolean |
MBCLEN_NEEDMORE_P(int r) |
static int |
MBCLEN_NEEDMORE(int n) |
static int |
memchr(byte[] ptr,
int start,
int find,
int len) |
static int |
memmem(byte[] aBytes,
int aStart,
int aLen,
byte[] p,
int pStart,
int pLen) |
static int |
memsearch(byte[] xBytes,
int x0,
int m,
byte[] yBytes,
int y0,
int n,
org.jcodings.Encoding enc) |
static int |
multiByteCasecmp(org.jcodings.Encoding enc,
org.jruby.util.ByteList value,
org.jruby.util.ByteList otherValue) |
static boolean |
multiByteDowncase(org.jcodings.Encoding enc,
byte[] bytes,
int s,
int end) |
static boolean |
multiByteSqueeze(Ruby runtime,
org.jruby.util.ByteList value,
boolean[] squeeze,
StringSupport.TrTables tables,
org.jcodings.Encoding enc,
boolean isArg) |
static boolean |
multiByteSwapcase(Ruby runtime,
org.jcodings.Encoding enc,
byte[] bytes,
int s,
int end) |
static boolean |
multiByteUpcase(org.jcodings.Encoding enc,
byte[] bytes,
int s,
int end) |
static int |
nth(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end,
int n) |
static int |
nth(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end,
int n,
boolean singlebyte)
Get the position of the nth character in the given byte array, using the given encoding and range.
|
static int |
octLength(byte[] bytes,
int p,
int len) |
static int |
octLength(byte[] bytes,
int p,
int len,
org.jcodings.Encoding enc) |
static int |
offset(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end,
int n) |
static int |
offset(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end,
int n,
boolean singlebyte) |
static int |
offset(RubyString str,
int pos) |
static int |
positionEndForScan(org.jruby.util.ByteList value,
org.joni.Matcher matcher,
org.jcodings.Encoding enc,
int begin,
int range)
rb_str_scan
|
static int |
preciseCodePoint(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end) |
static int |
preciseLength(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end) |
static IRubyObject |
rbStrEnumerateLines(RubyString str,
ThreadContext context,
String name,
IRubyObject arg,
Block block,
boolean wantarray) |
static org.jruby.util.ByteList |
replaceInternal(int beg,
int len,
ByteListHolder source,
CodeRangeable repl) |
static void |
replaceInternal19(int beg,
int len,
CodeRangeable source,
CodeRangeable repl) |
static void |
replaceInternal19(Ruby runtime,
int beg,
int len,
RubyString source,
RubyString repl) |
static int |
rindex(org.jruby.util.ByteList source,
int sourceChars,
int subChars,
int pos,
CodeRangeable subStringCodeRangeable,
org.jcodings.Encoding enc) |
static int |
scanHex(byte[] bytes,
int p,
int len) |
static int |
scanHex(byte[] bytes,
int p,
int len,
org.jcodings.Encoding enc) |
static int |
scanOct(byte[] bytes,
int p,
int len) |
static int |
scanOct(byte[] bytes,
int p,
int len,
org.jcodings.Encoding enc) |
static int |
searchNonAscii(byte[] bytes,
int p,
int end) |
static int |
searchNonAscii(org.jruby.util.ByteList bytes) |
static boolean |
singleByteDowncase(byte[] bytes,
int s,
int end) |
static boolean |
singleByteSqueeze(org.jruby.util.ByteList value,
boolean[] squeeze) |
static boolean |
singleByteSwapcase(byte[] bytes,
int s,
int end)
rb_str_swapcase / rb_str_swapcase_bang
|
static boolean |
singleByteUpcase(byte[] bytes,
int s,
int end) |
static RubyString |
strFillTerm(RubyString str,
byte[] sBytes,
int s,
int len,
int oldtermlen,
int termlen) |
static int |
strLength(org.jruby.util.ByteList bytes) |
static int |
strLength(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end) |
static int |
strLength(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int e,
int cr) |
static int |
strLengthFromRubyString(CodeRangeable string) |
static int |
strLengthFromRubyString(CodeRangeable string,
org.jcodings.Encoding enc) |
static long |
strLengthWithCodeRange(org.jruby.util.ByteList bytes) |
static long |
strLengthWithCodeRange(org.jruby.util.ByteList bytes,
org.jcodings.Encoding enc) |
static long |
strLengthWithCodeRange(org.jcodings.Encoding enc,
byte[] bytes,
int p,
int end) |
static int |
strNullChar(byte[] sBytes,
int s,
int len,
int minlen,
org.jcodings.Encoding enc) |
static StringSupport.NeighborChar |
succChar(Ruby runtime,
org.jcodings.Encoding enc,
byte[] bytes,
int p,
int len) |
static org.jruby.util.ByteList |
succCommon(Ruby runtime,
org.jruby.util.ByteList original) |
static void |
TERM_FILL(byte[] ptrBytes,
int ptr,
int termlen) |
static int |
toLower(org.jcodings.Encoding enc,
int c) |
static int |
toUpper(org.jcodings.Encoding enc,
int c) |
static boolean |
trFind(int c,
boolean[] table,
StringSupport.TrTables tables) |
static int |
trNext(StringSupport.TR t,
Ruby runtime,
org.jcodings.Encoding enc) |
static StringSupport.TrTables |
trSetupTable(org.jruby.util.ByteList str,
Ruby runtime,
boolean[] stable,
StringSupport.TrTables tables,
boolean first,
org.jcodings.Encoding enc) |
static CodeRangeable |
trTransHelper(Ruby runtime,
CodeRangeable self,
CodeRangeable srcStr,
CodeRangeable replStr,
boolean sflag)
rb_str_tr / rb_str_tr_bang
|
static int |
unpackArg(long cr) |
static int |
unpackResult(long len) |
static int |
utf8Length(byte[] bytes,
int p,
int end) |
static int |
utf8Length(org.jruby.util.ByteList bytes) |
static int |
utf8Nth(byte[] bytes,
int p,
int e,
int nth) |
static int |
utf8Offset(byte[] bytes,
int p,
int end,
int n) |
static boolean |
zeroFilled(byte[] sBytes,
int s,
int n) |
public static final int CR_MASK
public static final int CR_UNKNOWN
public static final int CR_7BIT
public static final int CR_VALID
public static final int CR_BROKEN
public static final Object UNSAFE
public static final int TRANS_SIZE
public static final String[] EMPTY_STRING_ARRAY
public static String codeRangeAsString(int codeRange)
public static int encFastMBCLen(byte[] bytes, int p, int e, org.jcodings.Encoding enc)
public static int length(org.jcodings.Encoding enc, byte[] bytes, int p, int end)
public static int preciseLength(org.jcodings.Encoding enc, byte[] bytes, int p, int end)
public static boolean MBCLEN_NEEDMORE_P(int r)
public static int MBCLEN_NEEDMORE(int n)
public static boolean MBCLEN_INVALID_P(int r)
public static int MBCLEN_CHARFOUND_LEN(int r)
public static boolean MBCLEN_CHARFOUND_P(int r)
public static int CONSTRUCT_MBCLEN_CHARFOUND(int n)
public static int searchNonAscii(byte[] bytes, int p, int end)
public static int searchNonAscii(org.jruby.util.ByteList bytes)
public static int codeRangeScan(org.jcodings.Encoding enc, byte[] bytes, int p, int len)
public static int codeRangeScan(org.jcodings.Encoding enc, org.jruby.util.ByteList bytes)
public static long codeRangeScanRestartable(org.jcodings.Encoding enc, byte[] bytes, int s, int end, int cr)
public static int utf8Length(byte[] bytes, int p, int end)
public static int utf8Length(org.jruby.util.ByteList bytes)
public static int strLength(org.jcodings.Encoding enc, byte[] bytes, int p, int end)
public static int strLength(org.jcodings.Encoding enc, byte[] bytes, int p, int e, int cr)
public static int strLength(org.jruby.util.ByteList bytes)
public static long strLengthWithCodeRange(org.jcodings.Encoding enc, byte[] bytes, int p, int end)
public static long strLengthWithCodeRange(org.jruby.util.ByteList bytes)
public static long strLengthWithCodeRange(org.jruby.util.ByteList bytes, org.jcodings.Encoding enc)
public static int unpackResult(long len)
public static int unpackArg(long cr)
public static int codePoint(Ruby runtime, org.jcodings.Encoding enc, byte[] bytes, int p, int end)
public static int codePoint(org.jcodings.Encoding enc, byte[] bytes, int p, int end)
public static int codeLength(org.jcodings.Encoding enc, int c)
public static long getAscii(org.jcodings.Encoding enc, byte[] bytes, int p, int end)
public static long getAscii(org.jcodings.Encoding enc, byte[] bytes, int p, int end, int len)
public static int preciseCodePoint(org.jcodings.Encoding enc, byte[] bytes, int p, int end)
public static int utf8Nth(byte[] bytes, int p, int e, int nth)
public static int nth(org.jcodings.Encoding enc, byte[] bytes, int p, int end, int n)
public static int nth(org.jcodings.Encoding enc, byte[] bytes, int p, int end, int n, boolean singlebyte)
enc
- encoding to usebytes
- bytes to scanp
- starting byte offsetend
- ending byte offsetn
- index of character for which to find byte offsetsinglebyte
- whether the byte contents are in a single byte encodingpublic static int utf8Offset(byte[] bytes, int p, int end, int n)
public static int offset(org.jcodings.Encoding enc, byte[] bytes, int p, int end, int n)
public static int offset(org.jcodings.Encoding enc, byte[] bytes, int p, int end, int n, boolean singlebyte)
public static int offset(RubyString str, int pos)
public static int toLower(org.jcodings.Encoding enc, int c)
public static int toUpper(org.jcodings.Encoding enc, int c)
public static int caseCmp(byte[] bytes1, int p1, byte[] bytes2, int p2, int len)
public static int scanHex(byte[] bytes, int p, int len)
public static int scanHex(byte[] bytes, int p, int len, org.jcodings.Encoding enc)
public static int hexLength(byte[] bytes, int p, int len)
public static int hexLength(byte[] bytes, int p, int len, org.jcodings.Encoding enc)
public static int scanOct(byte[] bytes, int p, int len)
public static int scanOct(byte[] bytes, int p, int len, org.jcodings.Encoding enc)
public static int octLength(byte[] bytes, int p, int len)
public static int octLength(byte[] bytes, int p, int len, org.jcodings.Encoding enc)
public static final void checkStringSafety(Ruby runtime, IRubyObject value)
runtime
- value
- public static boolean isUnicode(org.jcodings.Encoding enc)
public static String escapedCharFormat(int c, boolean isUnicode)
public static boolean isIncompleteChar(int b)
public static int bytesToFixBrokenTrailingCharacter(org.jruby.util.ByteList val, int usingLength)
public static int bytesToFixBrokenTrailingCharacter(byte[] bytes, int begin, int byteSize, org.jcodings.Encoding encoding, int usingLength)
public static int memchr(byte[] ptr, int start, int find, int len)
public static RubyString checkEmbeddedNulls(Ruby runtime, IRubyObject ptr)
public static int strNullChar(byte[] sBytes, int s, int len, int minlen, org.jcodings.Encoding enc)
public static boolean zeroFilled(byte[] sBytes, int s, int n)
public static RubyString strFillTerm(RubyString str, byte[] sBytes, int s, int len, int oldtermlen, int termlen)
public static void TERM_FILL(byte[] ptrBytes, int ptr, int termlen)
public static int positionEndForScan(org.jruby.util.ByteList value, org.joni.Matcher matcher, org.jcodings.Encoding enc, int begin, int range)
public static org.jruby.util.ByteList dumpCommon(Ruby runtime, org.jruby.util.ByteList byteList)
public static boolean isEVStr(byte[] bytes, int p, int end)
public static boolean isEVStr(int c)
public static int countCommon19(org.jruby.util.ByteList value, Ruby runtime, boolean[] table, StringSupport.TrTables tables, org.jcodings.Encoding enc)
public static int rindex(org.jruby.util.ByteList source, int sourceChars, int subChars, int pos, CodeRangeable subStringCodeRangeable, org.jcodings.Encoding enc)
public static int strLengthFromRubyString(CodeRangeable string, org.jcodings.Encoding enc)
public static int strLengthFromRubyString(CodeRangeable string)
public static StringSupport.TrTables trSetupTable(org.jruby.util.ByteList str, Ruby runtime, boolean[] stable, StringSupport.TrTables tables, boolean first, org.jcodings.Encoding enc)
public static boolean trFind(int c, boolean[] table, StringSupport.TrTables tables)
public static int trNext(StringSupport.TR t, Ruby runtime, org.jcodings.Encoding enc)
public static org.jruby.util.ByteList succCommon(Ruby runtime, org.jruby.util.ByteList original)
public static StringSupport.NeighborChar succChar(Ruby runtime, org.jcodings.Encoding enc, byte[] bytes, int p, int len)
public static boolean isSingleByteOptimizable(CodeRangeable string, org.jcodings.Encoding encoding)
public static int index(CodeRangeable sourceString, CodeRangeable otherString, int offset, org.jcodings.Encoding enc)
public static void associateEncoding(CodeRangeable string, org.jcodings.Encoding enc)
public static org.jruby.util.ByteList replaceInternal(int beg, int len, ByteListHolder source, CodeRangeable repl)
public static void replaceInternal19(int beg, int len, CodeRangeable source, CodeRangeable repl)
public static void replaceInternal19(Ruby runtime, int beg, int len, RubyString source, RubyString repl)
public static boolean isAsciiOnly(CodeRangeable string)
public static CodeRangeable delete_bangCommon19(CodeRangeable rubyString, Ruby runtime, boolean[] squeeze, StringSupport.TrTables tables, org.jcodings.Encoding enc)
public static int choppedLength19(CodeRangeable str, Ruby runtime)
public static org.jcodings.Encoding areCompatible(CodeRangeable string, CodeRangeable other)
public static org.jruby.util.ByteList addByteLists(org.jruby.util.ByteList value1, org.jruby.util.ByteList value2)
public static boolean areComparable(CodeRangeable string, CodeRangeable other)
public static boolean areComparableViaCodeRange(CodeRangeable string, CodeRangeable other)
public static IRubyObject rbStrEnumerateLines(RubyString str, ThreadContext context, String name, IRubyObject arg, Block block, boolean wantarray)
public static int memsearch(byte[] xBytes, int x0, int m, byte[] yBytes, int y0, int n, org.jcodings.Encoding enc)
public static CodeRangeable trTransHelper(Ruby runtime, CodeRangeable self, CodeRangeable srcStr, CodeRangeable replStr, boolean sflag)
public static int multiByteCasecmp(org.jcodings.Encoding enc, org.jruby.util.ByteList value, org.jruby.util.ByteList otherValue)
public static boolean singleByteSqueeze(org.jruby.util.ByteList value, boolean[] squeeze)
public static boolean multiByteSqueeze(Ruby runtime, org.jruby.util.ByteList value, boolean[] squeeze, StringSupport.TrTables tables, org.jcodings.Encoding enc, boolean isArg)
public static boolean singleByteSwapcase(byte[] bytes, int s, int end)
public static boolean multiByteSwapcase(Ruby runtime, org.jcodings.Encoding enc, byte[] bytes, int s, int end)
public static int memmem(byte[] aBytes, int aStart, int aLen, byte[] p, int pStart, int pLen)
public static boolean singleByteDowncase(byte[] bytes, int s, int end)
public static boolean multiByteDowncase(org.jcodings.Encoding enc, byte[] bytes, int s, int end)
public static boolean singleByteUpcase(byte[] bytes, int s, int end)
public static boolean multiByteUpcase(org.jcodings.Encoding enc, byte[] bytes, int s, int end)
Copyright © 2001-2015 JRuby. All Rights Reserved.