annotate src/luan/modules/StringLuan.java @ 1811:55d89a183c82 default tip

remove line_diff from luan
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 15 May 2024 18:02:28 -0600
parents 90187946d1a4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
167
4c0131c2b650 merge luan/lib into modules
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 163
diff changeset
1 package luan.modules;
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
2
1649
f7e2df85fc0a add String.digest_message
Franklin Schmidt <fschmidt@gmail.com>
parents: 1563
diff changeset
3 import java.security.NoSuchAlgorithmException;
757
Franklin Schmidt <fschmidt@gmail.com>
parents: 702
diff changeset
4 import java.util.Arrays;
1807
ffa28e2155bb add line_diff
Franklin Schmidt <fschmidt@gmail.com>
parents: 1778
diff changeset
5 import java.util.List;
1721
5c69d2e8bd75 no regex in String.find and String.split
Franklin Schmidt <fschmidt@gmail.com>
parents: 1718
diff changeset
6 import goodjava.util.GoodUtils;
1807
ffa28e2155bb add line_diff
Franklin Schmidt <fschmidt@gmail.com>
parents: 1778
diff changeset
7 import goodjava.util.LineDiff;
48
64ecb7a3aad7 rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 46
diff changeset
8 import luan.Luan;
64ecb7a3aad7 rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 46
diff changeset
9 import luan.LuanTable;
64ecb7a3aad7 rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 46
diff changeset
10 import luan.LuanFunction;
64ecb7a3aad7 rename Lua to Luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 46
diff changeset
11 import luan.LuanException;
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
12
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
13
168
ebe9db183eb7 rename *Lib.java to *Luan.java
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 167
diff changeset
14 public final class StringLuan {
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
15
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
16 static int start(String s,int i) {
248
10cc873babee fix StringIndexOutOfBoundsException
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 246
diff changeset
17 int len = s.length();
10cc873babee fix StringIndexOutOfBoundsException
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 246
diff changeset
18 return i==0 ? 0 : i > 0 ? Math.min(i-1,len) : Math.max(len+i,0);
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
19 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
20
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
21 static int start(String s,Integer i,int dflt) {
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
22 return i==null ? dflt : start(s,i);
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
23 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
24
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
25 static int end(String s,int i) {
248
10cc873babee fix StringIndexOutOfBoundsException
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 246
diff changeset
26 int len = s.length();
10cc873babee fix StringIndexOutOfBoundsException
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 246
diff changeset
27 return i==0 ? 0 : i > 0 ? Math.min(i,len) : Math.max(len+i+1,0);
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
28 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
29
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
30 static int end(String s,Integer i,int dflt) {
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
31 return i==null ? dflt : end(s,i);
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
32 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
33
1335
e0cf0d108a77 major cleanup
Franklin Schmidt <fschmidt@gmail.com>
parents: 1334
diff changeset
34 public static Integer[] unicode(String s,Integer i,Integer j) throws LuanException {
646
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
35 Utils.checkNotNull(s);
1505
01e38174d580 minor fix
Franklin Schmidt <fschmidt@gmail.com>
parents: 1384
diff changeset
36 int start = start(s,i,0);
305
5e7450ac27f2 rename String.byte() to String.unicode();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 302
diff changeset
37 int end = end(s,j,start+1);
5e7450ac27f2 rename String.byte() to String.unicode();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 302
diff changeset
38 Integer[] chars = new Integer[end-start];
5e7450ac27f2 rename String.byte() to String.unicode();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 302
diff changeset
39 for( int k=0; k<chars.length; k++ ) {
5e7450ac27f2 rename String.byte() to String.unicode();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 302
diff changeset
40 chars[k] = (int)s.charAt(start+k);
113
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
41 }
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
42 return chars;
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
43 }
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
44
246
58752e3e4c5c rename String.from_integers to char;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 221
diff changeset
45 public static String char_(int... chars) {
113
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
46 char[] a = new char[chars.length];
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
47 for( int i=0; i<chars.length; i++ ) {
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
48 a[i] = (char)chars[i];
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
49 }
8c706d6eb5dc add binary type
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 112
diff changeset
50 return new String(a);
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
51 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
52
1335
e0cf0d108a77 major cleanup
Franklin Schmidt <fschmidt@gmail.com>
parents: 1334
diff changeset
53 public static byte[] to_binary(String s) {
360
cbb94a7c7a9e allow mail attachments;
Franklin Schmidt <fschmidt@gmail.com>
parents: 305
diff changeset
54 return s.getBytes();
cbb94a7c7a9e allow mail attachments;
Franklin Schmidt <fschmidt@gmail.com>
parents: 305
diff changeset
55 }
cbb94a7c7a9e allow mail attachments;
Franklin Schmidt <fschmidt@gmail.com>
parents: 305
diff changeset
56
646
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
57 public static String lower(String s) throws LuanException {
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
58 Utils.checkNotNull(s);
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
59 return s.toLowerCase();
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
60 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
61
646
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
62 public static String upper(String s) throws LuanException {
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
63 Utils.checkNotNull(s);
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
64 return s.toUpperCase();
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
65 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
66
646
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
67 public static String trim(String s) throws LuanException {
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
68 Utils.checkNotNull(s);
271
82a3ebcfbafa add internal tests
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 264
diff changeset
69 return s.trim();
82a3ebcfbafa add internal tests
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 264
diff changeset
70 }
82a3ebcfbafa add internal tests
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 264
diff changeset
71
646
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
72 public static String reverse(String s) throws LuanException {
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
73 Utils.checkNotNull(s);
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
74 return new StringBuilder(s).reverse().toString();
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
75 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
76
1718
5603ee8e2a71 rename String.rep to String.repeated
Franklin Schmidt <fschmidt@gmail.com>
parents: 1717
diff changeset
77 public static String repeated(String s,int n,String sep) {
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
78 if( n < 1 )
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
79 return "";
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
80 StringBuilder buf = new StringBuilder(s);
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
81 while( --n > 0 ) {
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
82 if( sep != null )
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
83 buf.append(sep);
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
84 buf.append(s);
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
85 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
86 return buf.toString();
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
87 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
88
646
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
89 public static String sub(String s,int i,Integer j) throws LuanException {
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
90 Utils.checkNotNull(s);
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
91 int start = start(s,i);
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
92 int end = end(s,j,s.length());
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
93 return s.substring(start,end);
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
94 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
95
1721
5c69d2e8bd75 no regex in String.find and String.split
Franklin Schmidt <fschmidt@gmail.com>
parents: 1718
diff changeset
96 public static Object[] find(String s,String s2,Integer init) {
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
97 int start = start(s,init,0);
1721
5c69d2e8bd75 no regex in String.find and String.split
Franklin Schmidt <fschmidt@gmail.com>
parents: 1718
diff changeset
98 int i = s.indexOf(s2,start);
5c69d2e8bd75 no regex in String.find and String.split
Franklin Schmidt <fschmidt@gmail.com>
parents: 1718
diff changeset
99 return i == -1 ? null : new Integer[]{i+1,i+s2.length()};
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
100 }
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
101
79
805929c3c6e1 add string.format
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 77
diff changeset
102 // note - String.format() is too stupid to convert between ints and floats.
805929c3c6e1 add string.format
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 77
diff changeset
103 public static String format(String format,Object... args) {
805929c3c6e1 add string.format
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 77
diff changeset
104 return String.format(format,args);
805929c3c6e1 add string.format
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 77
diff changeset
105 }
805929c3c6e1 add string.format
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 77
diff changeset
106
420
e9d4d5854e54 add String.encode
Franklin Schmidt <fschmidt@gmail.com>
parents: 409
diff changeset
107 public static String encode(String s) {
e9d4d5854e54 add String.encode
Franklin Schmidt <fschmidt@gmail.com>
parents: 409
diff changeset
108 return Luan.stringEncode(s);
e9d4d5854e54 add String.encode
Franklin Schmidt <fschmidt@gmail.com>
parents: 409
diff changeset
109 }
e9d4d5854e54 add String.encode
Franklin Schmidt <fschmidt@gmail.com>
parents: 409
diff changeset
110
646
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
111 public static Number to_number(String s,Integer base) throws LuanException {
cdc70de628b5 simplify LuanException
Franklin Schmidt <fschmidt@gmail.com>
parents: 645
diff changeset
112 Utils.checkNotNull(s);
448
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
113 try {
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
114 if( base == null ) {
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
115 return Double.valueOf(s);
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
116 } else {
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
117 return Long.valueOf(s,base);
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
118 }
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
119 } catch(NumberFormatException e) {}
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
120 return null;
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
121 }
8b2db645b9b2 move Luan.to_number to String
Franklin Schmidt <fschmidt@gmail.com>
parents: 443
diff changeset
122
1721
5c69d2e8bd75 no regex in String.find and String.split
Franklin Schmidt <fschmidt@gmail.com>
parents: 1718
diff changeset
123 public static String[] split(String s,String s2,Integer limit) throws LuanException {
757
Franklin Schmidt <fschmidt@gmail.com>
parents: 702
diff changeset
124 Utils.checkNotNull(s);
1721
5c69d2e8bd75 no regex in String.find and String.split
Franklin Schmidt <fschmidt@gmail.com>
parents: 1718
diff changeset
125 Utils.checkNotNull(s2,2);
1195
9a57f0b16c2b better String.split
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
126 int n = limit==null ? -1 : limit;
1721
5c69d2e8bd75 no regex in String.find and String.split
Franklin Schmidt <fschmidt@gmail.com>
parents: 1718
diff changeset
127 return GoodUtils.split(s,s2,n);
757
Franklin Schmidt <fschmidt@gmail.com>
parents: 702
diff changeset
128 }
Franklin Schmidt <fschmidt@gmail.com>
parents: 702
diff changeset
129
1649
f7e2df85fc0a add String.digest_message
Franklin Schmidt <fschmidt@gmail.com>
parents: 1563
diff changeset
130 public static String digest_message(String algorithm,String input) throws LuanException, NoSuchAlgorithmException {
f7e2df85fc0a add String.digest_message
Franklin Schmidt <fschmidt@gmail.com>
parents: 1563
diff changeset
131 Utils.checkNotNull(algorithm,1);
f7e2df85fc0a add String.digest_message
Franklin Schmidt <fschmidt@gmail.com>
parents: 1563
diff changeset
132 Utils.checkNotNull(input,2);
f7e2df85fc0a add String.digest_message
Franklin Schmidt <fschmidt@gmail.com>
parents: 1563
diff changeset
133 return BinaryLuan.to_hex( BinaryLuan.digest_message( algorithm, input.getBytes() ) );
f7e2df85fc0a add String.digest_message
Franklin Schmidt <fschmidt@gmail.com>
parents: 1563
diff changeset
134 }
f7e2df85fc0a add String.digest_message
Franklin Schmidt <fschmidt@gmail.com>
parents: 1563
diff changeset
135
1716
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
136 public static boolean contains(String s,String s2) throws LuanException {
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
137 Utils.checkNotNull(s);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
138 Utils.checkNotNull(s2,2);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
139 return s.contains(s2);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
140 }
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
141
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
142 public static boolean starts_with(String s,String s2) throws LuanException {
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
143 Utils.checkNotNull(s);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
144 Utils.checkNotNull(s2,2);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
145 return s.startsWith(s2);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
146 }
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
147
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
148 public static boolean ends_with(String s,String s2) throws LuanException {
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
149 Utils.checkNotNull(s);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
150 Utils.checkNotNull(s2,2);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
151 return s.endsWith(s2);
b82767112d8e add String.regex
Franklin Schmidt <fschmidt@gmail.com>
parents: 1715
diff changeset
152 }
1778
Franklin Schmidt <fschmidt@gmail.com>
parents: 1777
diff changeset
153
1777
e59349d53fec optimize String.replace and regex.gsub
Franklin Schmidt <fschmidt@gmail.com>
parents: 1722
diff changeset
154 public static String replace(String s,String target,String replacement) throws LuanException {
e59349d53fec optimize String.replace and regex.gsub
Franklin Schmidt <fschmidt@gmail.com>
parents: 1722
diff changeset
155 Utils.checkNotNull(s);
e59349d53fec optimize String.replace and regex.gsub
Franklin Schmidt <fschmidt@gmail.com>
parents: 1722
diff changeset
156 Utils.checkNotNull(target,2);
e59349d53fec optimize String.replace and regex.gsub
Franklin Schmidt <fschmidt@gmail.com>
parents: 1722
diff changeset
157 Utils.checkNotNull(replacement,3);
1778
Franklin Schmidt <fschmidt@gmail.com>
parents: 1777
diff changeset
158 return GoodUtils.replace(s,target,replacement);
1777
e59349d53fec optimize String.replace and regex.gsub
Franklin Schmidt <fschmidt@gmail.com>
parents: 1722
diff changeset
159 }
1717
c637a2a1023d add String.replace
Franklin Schmidt <fschmidt@gmail.com>
parents: 1716
diff changeset
160
43
80b67b1a653c implement string lib
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
161 }