15d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/*
25d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Copyright (C) 2007 The Android Open Source Project
35d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao *
45d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Licensed under the Apache License, Version 2.0 (the "License");
55d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * you may not use this file except in compliance with the License.
65d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * You may obtain a copy of the License at
75d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao *
85d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao *      http://www.apache.org/licenses/LICENSE-2.0
95d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao *
105d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Unless required by applicable law or agreed to in writing, software
115d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * distributed under the License is distributed on an "AS IS" BASIS,
125d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * See the License for the specific language governing permissions and
145d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * limitations under the License.
155d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */
165d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
175d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao/**
185d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao * Simple string test.
195d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao */
205d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhaopublic class Main {
215d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    public static void main(String args[]) {
225d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        basicTest();
235d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        indexTest();
245d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    }
255d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
265d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    public static void basicTest() {
275d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        String baseStr = "*** This is a very nice string!!!";
285d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        String testStr;
295d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        int i;
305d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
315d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        testStr = baseStr.substring(4, baseStr.length() - 3);
325d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        System.out.println("testStr is '" + testStr + "'");
335d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
345d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        /* sloppy for loop */
355d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        for (i = 0; i < testStr.length(); i++)
365d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            System.out.print(testStr.charAt(i));
375d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        System.out.print("\n");
385d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
395d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        String testStr2 = "This is a very nice strinG";
405d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        if (testStr.length() != testStr2.length())
415d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            System.out.println("WARNING: stringTest length mismatch");
425d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
435d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        System.out.println("Compare result is " + testStr.compareTo(testStr2));
445d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
455d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        // expected: -65302
465d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        String s1 = "\u0c6d\u0cb6\u0d00\u0000\u0080\u0080\u0080\u0000\u0002\u0002\u0002\u0000\u00e9\u00e9\u00e9";
475d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        String s2 = "\u0c6d\u0cb6\u0d00\u0000\u0080\u0080\u0080\u0000\u0002\u0002\u0002\u0000\uffff\uffff\uffff\u00e9\u00e9\u00e9";
485d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        System.out.println("Compare unicode: " + s1.compareTo(s2));
495d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
505d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        try {
515d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            testStr.charAt(500);
525d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            System.out.println("GLITCH: expected exception");
535d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        } catch (StringIndexOutOfBoundsException sioobe) {
545d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            System.out.println("Got expected exception");
555d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        }
565d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    }
575d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
585d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    public static void indexTest() {
595d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        String baseStr = "The quick brown fox jumps over the lazy dog!";
605d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        String subStr;
615d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
625d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        subStr = baseStr.substring(5, baseStr.length() - 4);
635d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        System.out.println("subStr is '" + subStr + "'");
645d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao
655d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao        System.out.println("Indexes are: " +
665d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            baseStr.indexOf('T') + ":" +
675d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('T') + ":" +
685d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('u') + ":" +
695d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            baseStr.indexOf('!') + ":" +
705d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('y') + ":" +
715d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('d') + ":" +
725d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            baseStr.indexOf('x') + ":" +
735d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('x', 0) + ":" +
745d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('x', -1) + ":" +
755d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('x', 200) + ":" +
765d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            baseStr.indexOf('x', 17) + ":" +
775d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            baseStr.indexOf('x', 18) + ":" +
785d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            baseStr.indexOf('x', 19) + ":" +
795d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('x', 13) + ":" +
805d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('x', 14) + ":" +
815d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            subStr.indexOf('&') + ":" +
825d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao            baseStr.indexOf(0x12341234));
835d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao    }
845d1ac920fdaef5d4ec8f66bb734488cd9660b024jeffhao}
85