Java教程

Java String toUpperCase()

java字符串toUpperCase()方法返回以大写字母表示的字符串。换句话说,它将字符串中的所有字符都转换为大写字母。
toUpperCase()方法的工作方式与toUpperCase(Locale.getDefault())方法相同。它在内部使用默认语言环境。

内部实现

public String toUpperCase(Locale locale) {
    if (locale == null) {
        throw new NullPointerException();
    }
    int firstLower;
    final int len = value.length;
    scan: {
        for (firstLower = 0 ; firstLower < len; ) {
            int c = (int)value[firstLower];
            int srcCount;
            if ((c >= Character.MIN_HIGH_SURROGATE) &
            &
            (c <= Character.MAX_HIGH_SURROGATE)) {
                c = codePointAt(firstLower);
                srcCount = Character.charCount(c);
            }
            else {
                srcCount = 1;
            }
            int upperCaseChar = Character.toUpperCaseEx(c);
            if ((upperCaseChar == Character.ERROR) || (c != upperCaseChar)) {
                break scan;
            }
            firstLower += srcCount;
        }
        return this;
    }
    char[] result = new char[len];
    int resultOffset = 0;
    System.arraycopy(value, 0, result, 0, firstLower);
    String lang = locale.getLanguage();
    boolean localeDependent = (lang == "tr" || lang == "az" || lang == "lt");
    char[] upperCharArray;
    int upperChar;
    int srcChar;
    int srcCount;
    for (int i = firstLower; i < len; i += srcCount) {
        srcChar = (int)value[i];
        if ((char)srcChar >
        = Character.MIN_HIGH_SURROGATE &
        &
        (char)srcChar <= Character.MAX_HIGH_SURROGATE) {
            srcChar = codePointAt(i);
            srcCount = Character.charCount(srcChar);
        }
        else {
            srcCount = 1;
        }
        if (localeDependent) {
            upperChar = ConditionalSpecialCasing.toUpperCaseEx(this, i, locale);
        }
        else {
            upperChar = Character.toUpperCaseEx(srcChar);
        }
        if ((upperChar == Character.ERROR) || (upperChar >= Character.MIN_SUPPLEMENTARY_CODE_POINT)) {
            if (upperChar == Character.ERROR) {
                if (localeDependent) {
                    upperCharArray = ConditionalSpecialCasing.toUpperCaseCharArray(this, i, locale);
                }
                else {
                    upperCharArray = Character.toUpperCaseCharArray(srcChar);
                }
            }
            else if (srcCount == 2) {
                resultOffset += Character.toChars(upperChar, result, i + resultOffset) - srcCount;
                continue;
            }
            else {
                upperCharArray = Character.toChars(upperChar);
            }
            /*
            Grow result if needed
            */
            int mapLen = upperCharArray.length;
            if (mapLen > srcCount) {
                char[] result2 = new char[result.length + mapLen - srcCount];
                System.arraycopy(result, 0, result2, 0, i + resultOffset);
                result = result2;
            }
            for (int x = 0; x < mapLen; ++x) {
                result[i + resultOffset + x] = upperCharArray[x];
            }
            resultOffset += (mapLen - srcCount);
        }
        else {
            result[i + resultOffset] = (char)upperChar;
        }
    }
    return new String(result, 0, len + resultOffset);
}

签名

toUpperCase()方法有两种变体。字符串toUpperCase()方法的签名或语法如下:
public String toUpperCase()
public String toUpperCase(Locale locale)
toUpperCase()的第二个方法变体,使用给定Locale的规则将所有字符转换为大写。

返回

大写字母的字符串。

Java字符串toUpperCase()方法示例

public class StringUpperExample{
    public static void main(String args[]){
        String s1="hello string";
        String s1upper=s1.toUpperCase();
        System.out.println(s1upper);
    }
}
输出:
HELLO STRING

Java字符串toUpperCase(语言环境语言环境)方法示例2

import java.util.Locale;
public class StringUpperExample2 {
    public static void main(String[] args) {
        String s = "hello string";
        String turkish = s.toUpperCase(Locale.forLanguageTag("tr"));
        String english = s.toUpperCase(Locale.forLanguageTag("en"));
        System.out.println(turkish);
        //will print I with dot on upper side System.out.println(english);
    }
}
输出:
HELLO STRING
HELLO STRING
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4