1 /*
2 * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25 /**
26 *******************************************************************************
27 * Copyright (C) 1996-2014, International Business Machines Corporation and
28 * others. All Rights Reserved.
29 *******************************************************************************
30 */
31
32 package sun.text.normalizer;
33
34 /**
35 * <p>Standalone utility class providing UTF16 character conversions and
36 * indexing conversions.
37 * <p>Code that uses strings alone rarely need modification.
38 * By design, UTF-16 does not allow overlap, so searching for strings is a safe
39 * operation. Similarly, concatenation is always safe. Substringing is safe if
40 * the start and end are both on UTF-32 boundaries. In normal code, the values
41 * for start and end are on those boundaries, since they arose from operations
42 * like searching. If not, the nearest UTF-32 boundaries can be determined
43 * using <code>bounds()</code>.
44 * <strong>Examples:</strong>
45 * <p>The following examples illustrate use of some of these methods.
46 * <pre>{@code
47 * // iteration forwards: Original
48 * for (int i = 0; i < s.length(); ++i) {
49 * char ch = s.charAt(i);
50 * doSomethingWith(ch);
51 * }
52 *
|
1 /*
2 * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25 /**
26 *******************************************************************************
27 * Copyright (C) 1996-2014, International Business Machines Corporation and
28 * others. All Rights Reserved.
29 *******************************************************************************
30 */
31
32 package jdk.internal.icu.text;
33
34 import jdk.internal.icu.impl.UCharacterProperty;
35
36 /**
37 * <p>Standalone utility class providing UTF16 character conversions and
38 * indexing conversions.
39 * <p>Code that uses strings alone rarely need modification.
40 * By design, UTF-16 does not allow overlap, so searching for strings is a safe
41 * operation. Similarly, concatenation is always safe. Substringing is safe if
42 * the start and end are both on UTF-32 boundaries. In normal code, the values
43 * for start and end are on those boundaries, since they arose from operations
44 * like searching. If not, the nearest UTF-32 boundaries can be determined
45 * using <code>bounds()</code>.
46 * <strong>Examples:</strong>
47 * <p>The following examples illustrate use of some of these methods.
48 * <pre>{@code
49 * // iteration forwards: Original
50 * for (int i = 0; i < s.length(); ++i) {
51 * char ch = s.charAt(i);
52 * doSomethingWith(ch);
53 * }
54 *
|