深入Java字符串

public static void main(String args[]) {
//在池中和堆中分别创建String对象"abc",s1指向堆中对象
String s1 = new String("abc");
//s2直接指向池中对象"abc"
String s2 = "abc";
//在堆中新创建"abc"对象,s3指向该对象
String s3 = new String("abc");
//在池中创建对象"ab" 和 "c",并且s4指向池中对象"abc"
String s4 = "ab" + "c";
//c指向池中对象"c"
String c = "c";
//在堆中创建新的对象"abc",并且s5指向该对象
String s5 = "ab" + c;
String s6 = "ab".concat("c");
String s7 = "ab".concat(c);
System.out.println("------------实串-----------");
System.out.println(s1 == s2); //false
System.out.println(s1 == s3); //false
System.out.println(s2 == s3); //false
System.out.println(s2 == s4); //true
System.out.println(s2 == s5); //false
System.out.println(s2 == s6); //false
System.out.println(s2 == s7); //false
String b1 = new String("");
String b2 = "";
String b3 = new String("");
String b4 = "".intern();
String b5 = "" + "";
String b6 = "".concat("");
String b7 = " ".trim();
String b8 = " ";
String b9 = " ".trim();
System.out.println("------------空串-----------");
System.out.println(b1 == b2); //false
System.out.println(b1 == b3); //false
System.out.println(b2 == b3); //false
System.out.println(b2 == b4); //true
System.out.println(b2 == b5); //true*
System.out.println(b2 == b6); //true*
System.out.println(b2 == b7); //false*
System.out.println("-----a----");
System.out.println(b2.equals(b7)); //true
System.out.println(b7 == b8); //false
System.out.println(b7 == b9); //false
System.out.println(b7.equals(b9)); //true
System.out.println(b9 == null);//false
System.out.println("b8.trim():");
for (byte b : b8.getBytes()) {
System.out.print(">>>" + (int) b + " ");
}
System.out.println("\nb8.trim():");
for (byte b : b8.trim().getBytes()) {
System.out.print(">>>" + (int) b + " ");
}
System.out.println("\nb9.trim():");
for (byte b : b9.trim().getBytes()) {
System.out.print(">>>" + (int) b + " ");
}
}
}
* 字符串转码测试
*
* @author leizhimin 2009-7-17 10:50:06
*/
public class TestEncoding {
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println("转码前,输出Java系统属性如下:");
System.out.println("user.country:" + System.getProperty("user.country"));
System.out.println("user.language:" + System.getProperty("user.language"));
System.out.println("sun.jnu.encoding:" + System.getProperty("sun.jnu.encoding"));
System.out.println("file.encoding:" + System.getProperty("file.encoding"));
System.out.println("---------------");
String s = "熔岩博客";
String s1 = new String(s.getBytes(), "UTF-8");
String s2 = new String(s.getBytes("UTF-8"), "UTF-8");
String s3 = new String(s.getBytes("UTF-8"));
String s4 = new String(s.getBytes("UTF-8"), "GBK");
String s5 = new String(s.getBytes("GBK"));
String s6 = new String(s.getBytes("GBK"), "GBK");
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4);
System.out.println(s5);
System.out.println(s6);
}
}
user.country:CN
user.language:zh
sun.jnu.encoding:GBK
file.encoding:UTF-8
---------------
熔岩博客
熔岩博客
熔岩博客
鐔斿博鍗氬
���Ҳ���
熔岩博客
Process finished with exit code 0

按字典顺序比较两个字符串。
compareToIgnoreCase(String str)
不考虑大小写,按字典顺序比较两个字符串。
深入Java字符串的更多相关文章
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- (转)Java字符串
转自:http://blog.sina.com.cn/s/blog_899678b90101brz0.html 创建字符串有两种方式:两种内存区域(字符串池,堆)1," " 引号创 ...
- Java字符串split函数的注意事项
Java字符串的split方法可以分割字符串,但和其他语言不太一样,split方法的参数不是单个字符,而是正则表达式,如果输入了竖线(|)这样的字符作为分割字符串,会出现意想不到的结果, 如, Str ...
- 关于java字符串编译优化问题
情景一:不好的字符串拼接习惯 起因是这样的:一个大牛在写了一篇关于java字符串优化问题的讲解,他提到:不要使用strObj+otherValue的方法将otherValue转换为字符串形式,因 ...
- Java字符串排列算法
Java字符串排列算法 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组 ...
- Java字符串转换
public class StringConvertToInt{ public static void main(String[] args) { String a ="12a34bW()5 ...
- Java字符串null相加
Java字符串null相加 最近和同事讨论了下面的一段代码: String a = null; a += a; System.out.println(a); 运行结果: nullnull 本着学习的态 ...
- JAVA字符串格式化String.format()的使用
JAVA字符串格式化-String.format()的使用常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprin ...
- Java字符串的10大热点问题,你都懂吗?
转自 威哥干JAVA http://www.codingke.com 下面我为大家总结了10条Java开发者经常会提的关于Java字符串的问题,如果你也是Java初学者,仔细看看吧: 1.如何比较字符 ...
- java 字符串为空问题
java 字符串为空问题 String testStr = null; System.out.println(testStr); if (testStr == null) { System.out.p ...
随机推荐
- LAMP课程
LAMP课程 上次课回顾: ls -a:查看全部目录内容 若文件名以“.”开头,则认为是隐藏的文件. ls-l:可以直接用命令 ll命令:ls -l 的别名. ls -m:横向显示文件和目录 ls - ...
- linux操作之文本编辑器
1.文本编辑器的作用 编辑和修改系统中的那些以文本形式存在的文件(特别是各种配置文件),也可以用于 编写程序代码 2.linux下的常见编辑器 nano.Emacs.gedit.vim等 3.vim三 ...
- 【智能算法】迭代局部搜索(Iterated Local Search, ILS)详解
迭代局部搜索(Iterated Local Search, ILS) 源代码下载请关注微信公众号[程序猿声],在后台回复:[ILS],不包括[]即可下载. 00 目录 局部搜索算法 简单局部搜索 迭代 ...
- opencv学习笔记(四)--图像平滑处理
图像平滑处理的几种常用方法: 均值滤波 归一化滤波 高斯模糊 中值滤波 平滑处理(模糊)的主要目的是去燥声: 不同的处理方式适合不同的噪声图像,其中高斯模糊最常用. 其实最重要的是对图像卷积的核的理解 ...
- Gym - 101908G 二分答案+最大流
After the end of the truck drivers' strike, you and the rest of Nlogônia logistics specialists now h ...
- there is already 'RtController' bean method 项目报错
今天开发项目时候发现项目报错启动的时候,也没有具体指的是哪一行报错,其实很简单的知道,首先看下报错信息: there is already 'RtController' bean method pub ...
- Qt 学习之路 2(50):自定义可编辑模型
Home / Qt 学习之路 2 / Qt 学习之路 2(50):自定义可编辑模型 Qt 学习之路 2(50):自定义可编辑模型 豆子 2013年5月13日 Qt 学习之路 2 13条评论 上一章我们 ...
- MAC office2016 安装及激活(试了一下,靠谱, 非常感谢原作者)
转载地址:https://blog.csdn.net/jxq0816/article/details/77248462 非常感谢原作者. 一.安装包下载地址 http://officecdn.micr ...
- 老男孩python作业7-开发一个支持多用户在线的FTP程序
作业6:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp s ...
- R语言排序函数汇总
总结: 1.sort是直接对向量排序,返回原数值: 2.order先对数值排序,然后返回排序后各数值的索引: 3.rank返回原数据各项排名,有并列的情况: 4.arrange是dplyr包中的,可对 ...