33import java .io .UnsupportedEncodingException ;
44import java .nio .CharBuffer ;
55
6+ import javajs .util .Rdr ;
67import javajs .util .SB ;
78
89public class Test_String extends Test_ {
910
1011 public static void main (String [] args ) {
12+ String s , sb ;
13+ byte [] b ;
1114
12- String sb = new String (new byte [] { 97 , 98 , 99 });
15+ sb = new String (new byte [] { 97 , 98 , 99 });
1316 System .out .println (sb );
1417 assert (sb .equals ("abc" ));
15- sb = new String (new byte [] { 97 , 98 , 99 }, 1 , 2 );
16- System .out .println (sb );
17- assert (sb .equals ("bc" ));
18- assert ("abcde" .indexOf (99 ) == 2 );
19- assert ("test" .contentEquals (new StringBuffer ("test" )));
20- int ii = "test\2 ing" .charAt (4 );
21- switch (ii | 'd' ) {
22- case 'f' :
23- assert (true );
24- break ;
25- case '3' :
26- case 3 :
27- default :
28- assert (false );
29- }
3018
31- CharBuffer cb = CharBuffer .allocate (4 );
32- cb .mark ();
33- cb .put ('a' );
34- cb .put ('b' );
35- cb .put ('c' );
36- cb .reset ();
37- StringBuffer sbb ;
38- sbb = new StringBuffer ("testing" );
39- sbb .insert (0 , cb );
40- System .out .println (sbb );
41- assert (sbb .toString ().equals ("abc\0 testing" ));
42- System .out .println (">" + cb .toString () + "<" );
43- cb .position (2 );
44- System .out .println (">" + cb .toString () + "<" );
45- assert (cb .toString ().equals ("c\0 " ));
46- sbb = new StringBuffer ("testing" );
47- sbb .insert (3 , cb , 0 , 1 );
48- System .out .println (sbb );
49- assert (sbb .toString ().equals ("tescting" ));
50- sb = "ab\u2520 c" ;
51- System .out .println (sb );
19+
5220 try {
53- byte [] b = sb .getBytes ("UTF-8" );
54- String s = "" + b [2 ] + b [3 ] + b [4 ];
21+ // Java will not ignore the BOM in the String constructor.
22+ // It will return 0xFEFF
23+ b = new byte [] {(byte ) 0xEF ,(byte ) 0xBB ,(byte ) 0xBF , 'A' , 'B' , 'C' };
24+ sb = new String (b , "UTF-8" ); // extra char
25+ System .out .println ((int )sb .charAt (0 ));
26+ assert ((int ) sb .charAt (0 ) == 65279 );
27+ b = sb .getBytes ("UTF-16BE" );
28+ s = "" + b [0 ] + b [1 ] +b [2 ];
29+ System .out .println (s );
30+ assert (s .equals ("-2-10" ));
31+ sb = sb .substring (1 );
32+ System .out .println (sb );
33+ assert (sb .equals ("ABC" ));
34+
35+ sb = new String (new byte [] { 97 , 98 , 99 }, 1 , 2 );
36+ System .out .println (sb );
37+ assert (sb .equals ("bc" ));
38+
39+ sb = "ab\u2520 c" ;
40+ System .out .println (sb );
41+
42+ b = sb .getBytes ("UTF-8" ); // no BOM
43+ s = "" + b [2 ] + b [3 ] + b [4 ];
5544 System .out .println (s );
5645 assert (s .equals ("-30-108-96" ));
5746 s = new String (b , "UTF-8" );
5847 System .out .println (s );
5948 assert (s .equals (sb ));
60- b = sb .getBytes ("UTF8" ); // no BOM
61-
49+
6250 b = sb .getBytes ("UTF-16BE" ); // no BOM
6351 s = "" + b [2 ] + b [3 ] + b [4 ];
6452 System .out .println (s );
@@ -74,6 +62,7 @@ public static void main(String[] args) {
7462 s = new String (b , "UTF-16" );
7563 System .out .println (s );
7664 assert (s .equals (sb ));
65+ System .out .println (">" + Rdr .fixUTF (b ) + "<" );
7766
7867 b = sb .getBytes ("UTF-16LE" ); // no BOM
7968 s = "" + b [2 ] + b [3 ] + b [4 ];
@@ -87,6 +76,45 @@ public static void main(String[] args) {
8776 // TODO Auto-generated catch block
8877 e .printStackTrace ();
8978 }
79+
80+
81+
82+
83+ assert ("abcde" .indexOf (99 ) == 2 );
84+ assert ("test" .contentEquals (new StringBuffer ("test" )));
85+ int ii = "test\2 ing" .charAt (4 );
86+ switch (ii | 'd' ) {
87+ case 'f' :
88+ assert (true );
89+ break ;
90+ case '3' :
91+ case 3 :
92+ default :
93+ assert (false );
94+ }
95+
96+ CharBuffer cb = CharBuffer .allocate (4 );
97+ cb .mark ();
98+ cb .put ('a' );
99+ cb .put ('b' );
100+ cb .put ('c' );
101+ cb .reset ();
102+ StringBuffer sbb ;
103+ sbb = new StringBuffer ("testing" );
104+ sbb .insert (0 , cb );
105+ System .out .println (sbb );
106+ assert (sbb .toString ().equals ("abc\0 testing" ));
107+ System .out .println (">" + cb .toString () + "<" );
108+ cb .position (2 );
109+ System .out .println (">" + cb .toString () + "<" );
110+ assert (cb .toString ().equals ("c\0 " ));
111+ sbb = new StringBuffer ("testing" );
112+ sbb .insert (3 , cb , 0 , 1 );
113+ System .out .println (sbb );
114+ assert (sbb .toString ().equals ("tescting" ));
115+ sb = "ab\u2520 c" ;
116+ System .out .println (sb );
117+
90118 assert ("test" .compareToIgnoreCase ("Test" ) == 0 );
91119 assert ("test" .compareToIgnoreCase ("Testing" ) < 0 );
92120 assert ("test" .compareToIgnoreCase ("Sest" ) > 0 );
@@ -111,7 +139,7 @@ public static void main(String[] args) {
111139 long t0 ;
112140 int n = (/**@j2sNative 1 ? 100 : */ 10 );
113141 t0 = System .currentTimeMillis ();
114- String s = "" ;
142+ s = "" ;
115143 for (int i = 0 ; i < 10000 ; i ++) {
116144 for (int j = 0 ; j < n ; j ++)
117145 s += i ;
@@ -151,12 +179,12 @@ public static void main(String[] args) {
151179 System .out .println ("java : ms 76 many StringBuilder len=400" );
152180
153181 t0 = System .currentTimeMillis ();
154- SB b = new SB ();
182+ SB buf = new SB ();
155183 for (int i = 0 ; i < 10000 ; i ++) {
156184 for (int j = 0 ; j < 100 ; j ++)
157- b .appendI (i );
185+ buf .appendI (i );
158186 }
159- s = b .toString ();
187+ s = buf .toString ();
160188 System .out .println ("\n ms " + (System .currentTimeMillis () - t0 ) + "\t javajs.util.SB len=" + s .length ());
161189 System .out .println ("java : ms 85 javajs.util.SB len=3889000" );
162190
0 commit comments