📄 pystring.java
字号:
} return s; } // Add in methods from string module public String lower() { return string.toLowerCase(); } public String upper() { return string.toUpperCase(); } public String title() { char[] chars = string.toCharArray(); int n = chars.length; boolean previous_is_cased = false; for (int i = 0; i < n; i++) { char ch = chars[i]; if (previous_is_cased) chars[i] = Character.toLowerCase(ch); else chars[i] = Character.toTitleCase(ch); if (Character.isLowerCase(ch) || Character.isUpperCase(ch) || Character.isTitleCase(ch)) previous_is_cased = true; else previous_is_cased = false; } return new String(chars); } public String swapcase() { char[] chars = string.toCharArray(); int n=chars.length; for (int i=0; i<n; i++) { char c = chars[i]; if (Character.isUpperCase(c)) { chars[i] = Character.toLowerCase(c); } else if (Character.isLowerCase(c)) { chars[i] = Character.toUpperCase(c); } } return new String(chars); } public String strip() { return strip(null); } public String strip(String sep) { char[] chars = string.toCharArray(); int n=chars.length; int start=0; if (sep == null) while (start < n && Character.isWhitespace(chars[start])) start++; else while (start < n && sep.indexOf(chars[start]) >= 0) start++; int end=n-1; if (sep == null) while (end >= 0 && Character.isWhitespace(chars[end])) end--; else while (end >= 0 && sep.indexOf(chars[end]) >= 0) end--; if (end >= start) { return (end < n-1 || start > 0) ? string.substring(start, end+1) : string; } else { return ""; } } public String lstrip() { return lstrip(null); } public String lstrip(String sep) { char[] chars = string.toCharArray(); int n=chars.length; int start=0; if (sep == null) while (start < n && Character.isWhitespace(chars[start])) start++; else while (start < n && sep.indexOf(chars[start]) >= 0) start++; return (start > 0) ? string.substring(start, n) : string; } public String rstrip() { return rstrip(null); } public String rstrip(String sep) { char[] chars = string.toCharArray(); int n=chars.length; int end=n-1; if (sep == null) while (end >= 0 && Character.isWhitespace(chars[end])) end--; else while (end >= 0 && sep.indexOf(chars[end]) >= 0) end--; return (end < n-1) ? string.substring(0, end+1) : string; } public PyList split() { return split(null, -1); } public PyList split(String sep) { return split(sep, -1); } public PyList split(String sep, int maxsplit) { if (sep != null) return splitfields(sep, maxsplit); PyList list = new PyList(); char[] chars = string.toCharArray(); int n=chars.length; if (maxsplit < 0) maxsplit = n; int splits=0; int index=0; while (index < n && splits < maxsplit) { while (index < n && Character.isWhitespace(chars[index])) index++; if (index == n) break; int start = index; while (index < n && !Character.isWhitespace(chars[index])) index++; list.append(new PyString(string.substring(start, index))); splits++; } while (index < n && Character.isWhitespace(chars[index])) index++; if (index < n) { list.append(new PyString(string.substring(index, n))); } return list; } private PyList splitfields(String sep, int maxsplit) { if (sep.length() == 0) { throw Py.ValueError("empty separator"); } PyList list = new PyList(); int length = string.length(); if (maxsplit < 0) maxsplit = length; int lastbreak = 0; int splits = 0; int sepLength = sep.length(); while (splits < maxsplit) { int index = string.indexOf(sep, lastbreak); if (index == -1) break; splits += 1; list.append(new PyString(string.substring(lastbreak, index))); lastbreak = index + sepLength; } if (lastbreak <= length) { list.append(new PyString(string.substring(lastbreak, length))); } return list; } public PyList splitlines() { return splitlines(false); } public PyList splitlines(boolean keepends) { PyList list = new PyList(); char[] chars = string.toCharArray(); int n=chars.length; int j = 0; for (int i = 0; i < n; ) { /* Find a line and append it */ while (i < n && chars[i] != '\n' && chars[i] != '\r' && Character.getType(chars[i]) != Character.LINE_SEPARATOR) i++; /* Skip the line break reading CRLF as one line break */ int eol = i; if (i < n) { if (chars[i] == '\r' && i + 1 < n && chars[i+1] == '\n') i += 2; else i++; if (keepends) eol = i; } list.append(new PyString(string.substring(j, eol))); j = i; } if (j < n) { list.append(new PyString(string.substring(j, n))); } return list; } public int index(String sub) { return index(sub, 0, string.length()); } public int index(String sub, int start) { return index(sub, start, string.length()); } public int index(String sub, int start, int end) { int n = string.length(); if (start < 0) start = n+start; if (end < 0) end = n+end; int index; if (end < n) { index = string.substring(start, end).indexOf(sub); } else { index = string.indexOf(sub, start); } if (index == -1) throw Py.ValueError("substring not found in string.index"); return index; } public int rindex(String sub) { return rindex(sub, 0, string.length()); } public int rindex(String sub, int start) { return rindex(sub, start, string.length()); } public int rindex(String sub, int start, int end) { int n = string.length(); if (start < 0) start = n+start; if (end < 0) end = n+end; int index; if (start > 0) { index = string.substring(start, end).lastIndexOf(sub); } else { index = string.lastIndexOf(sub, end); } if (index == -1) throw Py.ValueError("substring not found in string.rindex"); return index; } public int count(String sub) { return count(sub, 0, string.length()); } public int count(String sub, int start) { return count(sub, start, string.length()); } public int count(String sub, int start, int end) { int len = string.length(); if (end > len) end = len; if (end < 0) end += len; if (end < 0) end = 0; if (start < 0) start += len; if (start < 0) start = 0; int n = sub.length(); end = end + 1 - n; if (n == 0) return end-start; int count=0; while (start < end) { int index = string.indexOf(sub, start); if (index >= end || index == -1) break; count++; start = index + n; } return count; } public int find(String sub) { return find(sub, 0, string.length()); } public int find(String sub, int start) { return find(sub, start, string.length()); } public int find(String sub, int start, int end) { int n = string.length(); if (start < 0) start = n+start; if (end < 0) end = n+end; if (end > n) end = n; if (start > end) start = end; int slen = sub.length(); end = end-slen; int index = string.indexOf(sub, start); if (index > end) return -1; return index; } public int rfind(String sub) { return rfind(sub, 0, string.length()); } public int rfind(String sub, int start) { return rfind(sub, start, string.length()); } public int rfind(String sub, int start, int end) { int n = string.length(); if (start < 0) start = n+start; if (end < 0) end = n+end; if (end > n) end = n; if (start > end) start = end; int slen = sub.length(); end = end-slen; int index = string.lastIndexOf(sub, end); if (index < start) return -1; return index; } public double atof() { StringBuffer s = null; int n = string.length(); for (int i = 0; i < n; i++) { char ch = string.charAt(i); if (Character.isDigit(ch)) { if (s == null) s = new StringBuffer(string); int val = Character.digit(ch, 10); s.setCharAt(i, Character.forDigit(val, 10)); } } String sval = string; if (s != null) sval = s.toString(); try { return Double.valueOf(sval).doubleValue(); } catch (NumberFormatException exc) { throw Py.ValueError("invalid literal for __float__: "+string); } } public int atoi() { return atoi(10); } public int atoi(int base) { if ((base != 0 && base < 2) || (base > 36)) { throw Py.ValueError("invalid base for atoi()"); } int b = 0; int e = string.length(); while (b < e && Character.isWhitespace(string.charAt(b))) b++; while (e > b && Character.isWhitespace(string.charAt(e-1))) e--; char sign = 0; if (b < e) { sign = string.charAt(b); if (sign == '-' || sign == '+') { b++; while (b < e && Character.isWhitespace(string.charAt(b))) b++; } if (base == 0 || base == 16) { if (string.charAt(b) == '0') { if (b < e-1 && Character.toUpperCase(string.charAt(b+1)) == 'X') { base = 16; b += 2; } else { if (base == 0) base = 8; } } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -