深入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 ...
随机推荐
- luoguP2781 传教
https://www.luogu.org/problemnew/show/P2781 简化版题意:有 n 个数,初始值为 0,进行 m 次操作,每次操作支持将 [l, r] 加 v 和查询 [l, ...
- loj#6437. 「PKUSC2018」PKUSC(计算几何)
题面 传送门 题解 计算几何的东西我好像都已经忘光了-- 首先我们可以把原问题转化为另一个等价的问题:对于每一个敌人,我们以原点为圆心,画一个经过该点的圆,把这个圆在多边形内部的圆弧的度数加入答案.求 ...
- samba服务器架设
#samba服务器架设方便线上linux服务器和windows服务器之间共享 1.关闭防火墙service iptables stop 2.关闭SELinuxsetenforce 0 3.安装samb ...
- JavaScript学习笔记——4.数组
数组(Array) 数组也是一个对象 数组中保存的内容我们称为元素 数组的操作 - 创建数组 - var arr = new Array(); - var arr = []; 例如:var m ...
- P3705 [SDOI2017]新生舞会 01分数规划+费用流
$ \color{#0066ff}{ 题目描述 }$ 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴. 有\(n\)个男生和\(n\)个女生参加舞会买一个男生和一个女生一 ...
- angluarJs与后台交互get
<!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <met ...
- apache的URL重写
apache的url重写 第一步:修改apache\conf目录下的的httpd.conf文件 1.加载apache的url重写模块 大概122行:LoadModule rewrite_module ...
- vue从一个页面跳转到另一个页面并携带参数
1.需求: 点击商场跳转到商业体列表 解决方案: 元页面: a标签中添加跳转函数 <a class="orderBtn1 sIRicon2" href="javas ...
- JAVA通过网站域名URL获取该网站的源码(2018
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnect ...
- BZOJ - 2115 独立回路 线性基
题意:给定一个图集\((V,E)\),求路径\(1...n\)的最大异或和,其中重复经过的部分也会重复异或 所求既任意一条\(1...n\)的路径的异或和,再异或上任意独立回路的组合的异或和(仔细想想 ...