Java字符串类包括String、StringBuffer、StringBuilder。字符串之间是可以更改数值的。比如使用Parseint(S)方法,该方法是静态的,不会产生多余的以int形式返回的对象,并且在底层查看源代码时,如果输入的字符串内容不是int类型,如果它是空的,并且输入的内容超过int的极限,则会发现numberformatexception类型异常。
java字符串string的使用方法是什么?
String类别是一个不可更改的字符串,所以说string类实际上可以被认为是只读的一个字符串,但是即使如此,string类也提供了许多可用的方法,下面将详细介绍这些方法。例如string()、string、string(byte[ ])、string(char[ ])等。上面列出的一些普通string类构造函数以及其他string类构造函数,例如从数组的初始位置开始。
字符串StringBuilder有什么用处?
StringBuilder可以使用可变字符串操作,这将提高字符串性能。在StringBuilder类别中,也有一些类似的方法,如上面String类别中描述的indexof(char)。但是我们使用StringBuilder类,它主要用于在字符串中添加和删除字符。其次,StringBuilder类主要称为用于构建字符串的字符串,因为StringBuilder类用于提高性能,因为String类不会更改,实际上虚拟机在更改String类时在底层运行。
StringBuilder和StringBuffer有什么区别?
StringBuilder和StringBuffer的功能没有显著区别,除了消除非线程安全问题,有效地降低了成本以外,在大多数情况下是首选的字符串连接选项。StringBuffer提供了一个类来解决平铺顶部过多的中间对象的问题,我们可以使用Append或Add方法将字符串添加到现有序列的末尾或指定位置。
Java语言所使用的字符集是16位Unicode编码。另外再介绍一些常见的字符集:1、最早在dos下写pascal的时候,就遇到ASCII字符集,后来还是dos下写c,也是ascii字符集
特点:目前最通用的单字节编码字符集
表示:单字节
最早ascii用7bit表示,总共能表示2^7=128个字符,后来扩展到8bit,就表示2^8=256个字符
2、GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施。
特点:当然是能表示99%的中国汉字,还包括拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母等
表示:双字节
3、GBK是汉字编码标准之一,全称《汉字内码扩展规范》,GBK 向下与GB2312编码兼容,向上支持ISO10646.1国际标准。可以认为GBK是在GB2313基础上通过内码扩展出来的一个标准。
特点:完全兼容GB2312标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字
表示:双字节
4、Big5,台湾那边使用比较多。
5、GB 18030,全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。
特点:就是强大。覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统一汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。
表示:单字节、双字节、四字节三种方式
6、Unicode野心更大(当然有一个国际统一标准当然是好事)
特点:Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
表示:utf-8,utf-16,utf-32
这里可能有点不好理解,举个例子
首先,把unicode理解成对所有字符做了一个统一的编号,比如:“字”这个字符,编号是23383,这个是unicode定义的
但是,在计算机中,如何存储这个编号呢?方式就有很多,存储unicode的方式,就是utf-8,utf-16,utf-32
23383数值的16进制表示:0x5b57
utf-8用3个字节来表示汉字,所以utf-8的表示为:0xE5AD97
utf-16用2个字节来表示汉字,所以utf-16的表示为:0x5b57 刚好和数值是一样的
utf-32用4个字节来表示汉字,所以utf-32的表示为:0x00005b57 和数值是一样的,不过浪费空间
7、再来讲讲utf-8,它是一种变长的字符集
表示:单字节来表示字母,双字节来表示一些希腊字母,三字节来表示汉字,当然也有四字节的
这么做当然会增加表示和识别的难度,不过,可以节省空间。这也是为什么utf-8在网络编码中流行的原因。
使用string自带方法:public class Test {
public static void main(String args[]) {
String[] strs = {"Apple","peach","banana","Pear"}
for (int i = 0i <strs.length-1i++) {
for (int j =i+1j <strs.lengthj++) {
int intTemp = strs[i].compareToIgnoreCase(strs[j])
String strTemp = ""
if(intTemp>0){
strTemp = strs[j]
strs[j] = strs[i]
strs[i] = strTemp
}
}
}
for (int i = 0i <strs.lengthi++) {
System.out.println(strs[i])
}
}
}