Java tutorial
//package com.java2s; /* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import android.os.Build; public class Main { /** * name of the vendor "Docomo". <b>Note:</b> This isn't a public * constant, in order to keep this class from becoming a de facto * reference list of vendor names. */ private static final String VENDOR_DOCOMO = "docomo"; /** * Returns the name of the vendor-specific character set * corresponding to the given original character set name and the * default vendor (that is, the targeted vendor of the device this * code is running on). This method merely calls through to * {@link #nameForVendor(String,String)}, passing the default vendor * as the second argument. * * @param charsetName the base character set name * @return the specialized character set name, or {@code charsetName} if * there is no specialized name */ public static String nameForDefaultVendor(String charsetName) { return nameForVendor(charsetName, getDefaultVendor()); } /** * Returns the name of the vendor-specific character set * corresponding to the given original character set name and * vendor. If there is no vendor-specific character set for the * given name/vendor pair, this returns the original character set * name. The vendor name is matched case-insensitively. * * @param charsetName the base character set name * @param vendor the vendor to specialize for * @return the specialized character set name, or {@code charsetName} if * there is no specialized name */ public static String nameForVendor(String charsetName, String vendor) { // TODO: Eventually, this may want to be table-driven. if (vendor.equalsIgnoreCase(VENDOR_DOCOMO) && isShiftJis(charsetName)) { return "docomo-shift_jis-2007"; } return charsetName; } /** * Gets the default vendor for this build. * * @return the default vendor name */ private static String getDefaultVendor() { return Build.BRAND; } /** * Returns whether the given character set name indicates the Shift-JIS * encoding. Returns false if the name is null. * * @param charsetName the character set name * @return {@code true} if the name corresponds to Shift-JIS or * {@code false} if not */ private static boolean isShiftJis(String charsetName) { // Bail quickly if the length doesn't match. if (charsetName == null) { return false; } int length = charsetName.length(); if (length != 4 && length != 9) { return false; } return charsetName.equalsIgnoreCase("shift_jis") || charsetName.equalsIgnoreCase("shift-jis") || charsetName.equalsIgnoreCase("sjis"); } }