1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * you may not use this file except in compliance with the License. 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * You may obtain a copy of the License at 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/** 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Simple string test. 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class Main { 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public static void main(String args[]) { 2259a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden basicTest(); 2359a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden indexTest(); 2459a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden } 2559a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden 2659a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden public static void basicTest() { 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String baseStr = "*** This is a very nice string!!!"; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String testStr; 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int i; 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project testStr = baseStr.substring(4, baseStr.length() - 3); 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("testStr is '" + testStr + "'"); 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /* sloppy for loop */ 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (i = 0; i < testStr.length(); i++) 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.print(testStr.charAt(i)); 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.print("\n"); 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String testStr2 = "This is a very nice strinG"; 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (testStr.length() != testStr2.length()) 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("WARNING: stringTest length mismatch"); 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("Compare result is " + testStr.compareTo(testStr2)); 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected: -65302 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String s1 = "\u0c6d\u0cb6\u0d00\u0000\u0080\u0080\u0080\u0000\u0002\u0002\u0002\u0000\u00e9\u00e9\u00e9"; 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String s2 = "\u0c6d\u0cb6\u0d00\u0000\u0080\u0080\u0080\u0000\u0002\u0002\u0002\u0000\uffff\uffff\uffff\u00e9\u00e9\u00e9"; 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("Compare unicode: " + s1.compareTo(s2)); 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project testStr.charAt(500); 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("GLITCH: expected exception"); 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (StringIndexOutOfBoundsException sioobe) { 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("Got expected exception"); 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 5759a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden 5859a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden public static void indexTest() { 5959a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden String baseStr = "The quick brown fox jumps over the lazy dog!"; 6059a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden String subStr; 6159a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden 6259a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr = baseStr.substring(5, baseStr.length() - 4); 6359a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden System.out.println("subStr is '" + subStr + "'"); 6459a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden 6559a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden System.out.println("Indexes are: " + 6659a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden baseStr.indexOf('T') + ":" + 6759a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('T') + ":" + 6859a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('u') + ":" + 6959a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden baseStr.indexOf('!') + ":" + 7059a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('y') + ":" + 7159a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('d') + ":" + 7259a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden baseStr.indexOf('x') + ":" + 7359a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('x', 0) + ":" + 7459a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('x', -1) + ":" + 7559a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('x', 200) + ":" + 7659a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden baseStr.indexOf('x', 17) + ":" + 7759a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden baseStr.indexOf('x', 18) + ":" + 7859a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden baseStr.indexOf('x', 19) + ":" + 7959a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('x', 13) + ":" + 8059a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('x', 14) + ":" + 8159a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden subStr.indexOf('&') + ":" + 8259a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden baseStr.indexOf(0x12341234)); 8359a434629ba06d4decf7bc88a62ae370a1935f0eAndy McFadden } 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 85