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