JAVA文件读写及大小写字母转化
- 格式:pdf
- 大小:39.46 KB
- 文档页数:1


java转码方法一、Java转码概述Java转码是指将一个字符集编码转换为另一个字符集编码的过程。
在实际开发中,我们经常需要进行字符集编码的转换,例如将UTF-8编码的字符串转换为GBK编码的字符串。
Java提供了多种方法来进行字符集编码的转换,本文将详细介绍Java中常用的几种转码方法。
二、Java字符集在介绍Java中的转码方法之前,我们先来了解一下Java中常用的字符集。
在Java中,每个字符都有一个对应的Unicode编码。
Unicode是一种国际标准字符集,它包含了世界上所有语言所使用的字符。
但是,在实际开发中,我们通常使用其他更加常用的字符集来表示字符串。
1. ASCIIASCII是一种最早出现的字符集,它只包含英文字母、数字和少量特殊符号(如空格、制表符等),共计128个字符。
由于其简单、易于处理,因此在计算机系统中得到广泛应用。
2. ISO-8859-1ISO-8859-1是一种西欧语言所使用的字符集,它包含了所有西欧语言所使用的字母、数字和符号。
ISO-8859-1共计256个字符。
3. GBKGBK是中国国家标准GB 2312扩展出来的全能字符集,它包含了简体中文、繁体中文、日文、韩文等多种语言所使用的字符。
GBK共计21886个字符。
4. UTF-8UTF-8是一种可变长度的Unicode编码,它可以表示世界上所有的字符。
UTF-8共计1114112个字符。
三、Java转码方法在Java中,常用的转码方法有以下几种:1. String.getBytes()String.getBytes()方法可以将一个字符串按照指定的字符集编码转换为字节数组。
例如,将一个UTF-8编码的字符串转换为GBK编码的字节数组:```String str = "你好";byte[] bytes = str.getBytes("GBK");```2. new String(byte[] bytes, Charset charset)new String(byte[] bytes, Charset charset)方法可以将一个字节数组按照指定的字符集解码成字符串。
Java阿拉伯数字转换为中⽂⼤写数字Java 阿拉伯数字转换为中⽂⼤写数字/*** <html>* <body>* <P> Copyright 1994 JsonInternational</p>* <p> All rights reserved.</p>* <p> Created on 19941115</p>* <p> Created by Jason</p>* </body>* </html>*/package cn.ucaner.alpaca.framework.utils.chinese;import java.text.DecimalFormat;import java.util.HashMap;import java.util.Map;import cn.ucaner.alpaca.framework.utils.string.StringHelper;/*** @Package:cn.ucaner.framework.utils* @ClassName:ChineseNumber* @Description: <p> 阿拉伯数字转换为中⽂⼤写数字. </p>* @Author: - Jason* @CreatTime:2017年8⽉30⽇下午2:15:16* @Modify By:* @ModifyTime:* @Modify marker:* @version V1.0*/public class ChineseNumber {private static final String[] BEFORE_SCALE = { "万", "仟", "佰", "拾", "亿", "仟", "佰", "拾", "万", "仟", "佰", "拾", "" };private static final String[] AFTER_SCALE = { "⾓", "分" };private static final String DEFAULT_PATH_SEPARATOR = ".";private static final Map<String, String> NUMBER_MAPPING = new HashMap<String, String>();static {NUMBER_MAPPING.put("0", "零");NUMBER_MAPPING.put("1", "壹");NUMBER_MAPPING.put("2", "贰");NUMBER_MAPPING.put("3", "叁");NUMBER_MAPPING.put("4", "肆");NUMBER_MAPPING.put("5", "伍");NUMBER_MAPPING.put("6", "陆");NUMBER_MAPPING.put("7", "柒");NUMBER_MAPPING.put("8", "捌");NUMBER_MAPPING.put("9", "玖");}public static String getChineseNumber(String number) {return getChineseNumber(number, null, null);}public static String getChineseNumber(String number, String unit, String postfix) {String[] numbers = StringHelper.strToStrArray(number, DEFAULT_PATH_SEPARATOR);if (numbers.length > 2) {new NumberFormatException("数字格式错误!");}int length = numbers[0].length();int isZero = 0;StringBuffer result = new StringBuffer();for (int i = 0; i < length; i++) {String digit = String.valueOf(numbers[0].charAt(i));boolean allZero = true; // 如果后继的全部是零,则跳出for (int j = i; j < length; j++) {if (numbers[0].charAt(j) != '0') {allZero = false;break;}}if (allZero) {boolean hasValue = false;for (int z = i; z >= 0; z--) {if (numbers[0].charAt(z) != '0' && length - z <= 7 && length - z >= 5) {hasValue = true;break;}}// 加万单位if ( ( length - i > 4 && length <= 8 ) || ( hasValue && length - i > 4 )) {result.append(BEFORE_SCALE[8]);}// 加亿单位if (length - i >= 9) {result.append(BEFORE_SCALE[4]);}break;}if (length < 9 && length - i == 5) {if (!"0".equals(digit) && isZero > 0) {result.append(NUMBER_MAPPING.get("0"));}if ("0".equals(digit)) {result.append(BEFORE_SCALE[8]);if (isZero > 0) {result.append(NUMBER_MAPPING.get("0"));}continue;}}if ("0".equals(digit) && length > 9 && length - i == 9) {result.append(BEFORE_SCALE[4]);continue;}if (isZero < 1 || !"0".equals(digit)) {if ("0".equals(digit)) {if (length - i != 6 && length - i != 7) {result.append(NUMBER_MAPPING.get(digit));}} else {result.append(NUMBER_MAPPING.get(digit));}if (!"0".equals(digit)) {result.append(BEFORE_SCALE[BEFORE_SCALE.length - length + i]);}}if ("0".equals(digit)) {isZero++;} else {isZero = 0;}}result.append(unit == null ? "圆" : result.append(unit));if (numbers.length == 1) {result.append(postfix == null ? "整" : result.append(postfix));return result.toString();}length = numbers[1].length();for (int j = 0; j < length; j++) {if (j > 2) {break;}if (numbers[1].charAt(j) == '0') {continue;}result.append(NUMBER_MAPPING.get(String.valueOf(numbers[1].charAt(j)))); result.append(AFTER_SCALE[j]);}result.append(postfix == null ? "整" : result.append(postfix));return result.toString();}public static String getChineseNumber(int number) {return getChineseNumber(new Integer(number));}public static String getChineseNumber(int number, String unit, String postfix) { return getChineseNumber(new Integer(number), unit, postfix);}public static String getChineseNumber(Long number) {return getChineseNumber(number.toString(), null, null);}public static String getChineseNumber(Integer number) {return getChineseNumber(number.toString(), null, null);}public static String getChineseNumber(Integer number, String unit, String postfix) { return getChineseNumber(number.toString(), unit, postfix);}public static String getChineseNumber(Long number, String unit, String postfix) { return getChineseNumber(number.toString(), unit, postfix);}public static String getChineseNumber(long number) {return getChineseNumber(new Long(number));}public static String getChineseNumber(long number, String unit, String postfix) { return getChineseNumber(new Long(number), unit, postfix);}public static String getChineseNumber(double number, String unit, String postfix) { DecimalFormat f = (DecimalFormat) DecimalFormat.getInstance();f.applyLocalizedPattern("#.##");return getChineseNumber(f.format(number), unit, postfix);}public static String getChineseNumber(double number) {return getChineseNumber(number, null, null);}public static String getChineseNumber(Double number) {return getChineseNumber(number.doubleValue());}public static String getChineseNumber(Double number, String unit, String postfix) { return getChineseNumber(number.doubleValue(), unit, postfix);}public static void main(String[] args) {System.out.println(getChineseNumber(1994));System.out.println(getChineseNumber(1994.1115));System.out.println(getChineseNumber(19941115));}}//Outputs//壹仟玖佰玖拾肆圆整//壹仟玖佰玖拾肆圆壹⾓壹分整//壹仟玖佰玖拾肆万壹仟壹佰壹拾伍圆整。
在Java中,将大写字符转换为小写字符串有多种方法。
在本文中,我将介绍几种实用的方法,以便您能更全面地了解这个主题。
1. 使用String类的toLowerCase()方法Java中的String类提供了一个名为toLowerCase()的方法,可以将字符串中的大写字符转换为小写。
示例如下:```javaString originalString = "HELLO";String lowerCaseString = originalString.toLowerCase();System.out.println(lowerCaseString); // 输出"hello"```通过使用这种方法,您可以轻松地将大写字符转换为小写字符串。
2. 使用Character类的toLowerCase()方法除了String类的toLowerCase()方法外,Java中的Character类也提供了一个toLowerCase()方法,可以将字符转换为小写。
示例如下: ```javachar originalChar = 'H';char lowerCaseChar = Character.toLowerCase(originalChar);System.out.println(lowerCaseChar); // 输出'h'```通过使用Character类的这种方法,您可以针对单个字符进行大小写转换。
3. 使用ASCII码实现转换还可以通过ASCII码来实现大写字符到小写字符串的转换。
每个大写字母在ASCII码中有一个对应的小写字母,并且它们的ASCII码值相差32。
可以通过加上或减去这个差值来实现大小写转换。
示例如下: ```javachar originalChar = 'H';char lowerCaseChar = (char)(originalChar + 32);System.out.println(lowerCaseChar); // 输出'h'```通过ASCII码的转换方法,您可以了解字符之间的关系,并可以实现大小写转换。
Java常用类习题一、选择题1.下列String类的()方法返回指定字符串的一部分(选择一项)A.extractstring()B.substring()C.Substring()D.Middlestring()2.下列哪一个是正确的()A) HashTable的关键字和值都允许为nullB) HashTable的关键字和值都不允许为nullC) HashTable的关键字允许为null,值不允许为nullD) HashTable的关键字不允许为null,值允许为null3.对于下列代码:String str1="java";String str2="java";String str3=new String("java");StringBuffer str4=new StringBuffer("java");以下表达式的值为true的是()A) str1= =str2; B) str1= =str4;C) str2= =str3; D) str3= =str4;4.以下程序段输出结果的是()public class Test {public static void main(String args[]){String str="ABCDE";str.substring(3);str.concat("XYZ");System.out.print(str);}}A) DE B) DEXYZ C) ABCDE D) CDEXYZ5.对于下列代码:public class Example{String str=new String("hello");char ch[]={'d','b','c'};public static void main(String args[]){Example ex=new Example();ex.change(ex.str,ex.ch);System.out.println(ex.str+"and"+ex.ch[0]);}public void change(String str,char ch[]){str="world";ch[0]= 'a';}}输出结果是: ( )A) hello and d B) hello and aC) world and d D) world and a6.以下代码的运行结果是哪一项。