刚才简单研究了一下 char 。
比想象的复杂得多。主要应该是要看 java.lang.StringCoding 这个类。
现在没时间研究下去,先存个档。
package com;
import java.io.UnsupportedEncodingException;
//import java.lang.StringCoding.CharsetSE;
//import java.lang.StringCoding.ConverterSE;
//import java.lang.StringCoding.StringEncoder;
import java.nio.charset.Charset;
import java.nio.charset.IllegalCharsetNameException;
import sun.io.CharToByteConverter;
import sun.io.Converters;
import sun.misc.MessageUtils;
/**
* char 原来还有这么多名堂
* 有空再研究一下。
*
java.lang.StringCoding
import java.lang.StringCoding.CharsetSE;
import java.lang.StringCoding.ConverterSE;
import java.lang.StringCoding.StringEncoder;
*
* @author zch
* @date Apr 24, 2012
*
*/
public class TestChar {
private static void test01() {
for (int i = 0; i < 1024; i++) {
if ((char) i == '?')
System.out.println(i + ":" + (char) i);
}
}
private static void test02() {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 1024; i++) {
sb.append((char) i);
}
System.out.println(sb);
// for(int i=0; i<sb.length(); i++)
// {
// System.out.println((int)sb.charAt(i) + ":" + sb.charAt(i));
// }
byte[] buf = sb.toString().getBytes();
for (int i = 0; i < buf.length; i++) {
System.out.println(i + ":" + buf[i]);
}
// String s = new String(buf);
// for(int i=0; i<sb.length(); i++)
// {
// System.out.println((int)s.charAt(i) + ":" + s.charAt(i));
// }
}
// static byte[] encode(String charsetName, char[] ca, int off, int len)
// throws UnsupportedEncodingException {
// StringEncoder se = (StringEncoder) deref(encoder);
// String csn = (charsetName == null) ? "ISO-8859-1" : charsetName;
// if ((se == null)
// || !(csn.equals(se.requestedCharsetName()) || csn.equals(se
// .charsetName()))) {
// se = null;
// try {
// Charset cs = lookupCharset(csn);
// if (cs != null)
// se = new CharsetSE(cs, csn);
// } catch (IllegalCharsetNameException x) {
// // FALL THROUGH to CharToByteConverter, for compatibility
// }
// if (se == null)
// se = new ConverterSE(CharToByteConverter.getConverter(csn), csn);
// set(encoder, se);
// }
// return se.encode(ca, off, len);
// }
//
// static byte[] encode(char[] ca, int off, int len) {
// String csn = Converters.getDefaultEncodingName();
// try {
// return encode(csn, ca, off, len);
// } catch (UnsupportedEncodingException x) {
// Converters.resetDefaultEncodingName();
// warnUnsupportedCharset(csn);
// }
// try {
// return encode("ISO-8859-1", ca, off, len);
// } catch (UnsupportedEncodingException x) {
// // If this code is hit during VM initialization, MessageUtils is
// // the only way we will be able to get any kind of error message.
// MessageUtils.err("ISO-8859-1 charset not available: "
// + x.toString());
// // If we can not find ISO-8859-1 (a required encoding) then things
// // are seriously wrong with the installation.
// System.exit(1);
// return null;
// }
// }
/**
* @param args
*/
public static void main(String[] args) {
// for(int i=0; i<65536; i++)
test02();
}
}
分享到:
相关推荐
### 详解Java中的char型数据 #### 一、概述 在Java编程语言中,`char`类型是一种基本数据类型,用于存储单个字符。与其他语言如C或C++中的`char`类型相比,Java的`char`类型具有显著的不同之处。在C/C++中,`char`...
java char:字符型
"java char数据类型原理解析" Java char数据类型是Java语言中的一种基本数据类型,用于存储单个 Unicode 字符。char 数据类型占用两个字节内存,使用 Unicode 编码,可以存储 0x0000 ~ 0xffff 共 65536 个字符。...
### Java中的Char与String函数详解 #### 一、概述 在Java编程语言中,`char`类型用于表示单个字符,而`String`类则用于处理字符串数据。这两种类型是进行文本处理时不可或缺的基础工具。本文将详细介绍Java中与`...
### Java中的char与byte的区别详解 #### 一、引言 在Java编程语言中,`char` 和 `byte` 是两种基本的数据类型,它们分别用于处理字符和数值数据。尽管这两种类型都用来存储数据,但它们之间存在着显著的差异。本文...
符之间的拼接字符之间的拼接在Java中,String与char之间的拼接主要涉及到字符串与单个字符的相互转换。以下是一些示例: 1. String字符串转换为char字符: - 如果想要将一个String字符串中的单个字符提取出来,...
解码 说明:本方法保证 不论参数s是否经过escape()编码,均能得到正确的“解码”结果。另外如果出现了Erro—Parameters: Character decoding failed. 请使用escape(escape(s))来处理在客户端 解码URL中的中文,默认...
标题中的"javachar源码-02-StringsAndConstChar"表明这是一个关于Java和C语言中字符(char)类型以及字符串处理的项目。在这个项目中,开发者可能深入探讨了这两种编程语言在处理字符串和字符常量上的差异。在描述中...
例如,在Java中,你可以声明一个Char类型的变量来存储一个字符,如下所示: ```java char letter = 'A'; ``` 这里,'A'是字符字面量,被赋值给Char类型的变量letter。你还可以通过ASCII或Unicode码值来赋值: ```...
char short int long float double 转换成byte数组
这是一个用JAVA语言编写的源代码,里面的内容主要是char数据类型的应用,适合初学者参考.
在Java编程语言中,字符(char)类型是用于存储单个字符的数据类型。给指定字符赋值涉及到基本的变量声明和赋值操作。本篇文章将深入探讨如何在Java中为字符变量赋予不同的值,以及涉及的相关知识点。 1. **字符...
在Java中,我们可以使用`Character`类来处理字符与Charcode的转换。例如,通过`charCodeAt()`方法可以获取字符对应的Charcode,而`String.fromCharCode()`方法则可以将Charcode转换回字符。示例代码如下: ```java ...
Char()字符转换对照表,一张很小巧便捷的图片,方便平时SQLServer编写时Char()函数转换字符对照。
java char源码
在Java编程中,字符数组(char数组)和字符串(String类型)是两种常见的数据表示方式,它们在处理文本信息时各有优势。在某些场景下,我们需要在两者之间进行转换,例如在处理用户输入的密码时,`jPasswordField`...
### Java常用类与基础API-String的构造器与常用方法 #### 一、String的常用API-1 ##### (1)构造器 1. **介绍** - `public String()`: - 初始化新创建的 `String` 对象,以使其表示空字符序列。即创建了一个...
char源码夏洛特java 试图将夏洛特协议做为Java东西 用mvn compile mvn test单元mvn test 使用mvn exec:java -Dexec.mainClass="com.isaacsheff.charlotte.App"运行App.java (例如;执行不多) mvn exec:java -Dexec...
UTF-16是一种变长的Unicode编码,它可以表示Unicode字符集中所有的字符,每个字符通常由1至4个字节组成,但在Java中,每个`char`类型变量占用两个字节。 在Java中,无论是声明的`char`变量,还是`String`对象,它们...