`
jaesonchen
  • 浏览: 313310 次
  • 来自: ...
社区版块
存档分类
最新评论

java 字符串

 
阅读更多
//String.replaceAll 接受了一个正则表达式作为它的第一个参数,而并非接受了一个字符序列字面常量。
//正则表达式“.”可以匹配任何单个的字符,要想只匹配句点符号,在正则表达式中的句点必须在其前面添加
//一个反斜杠(\)进行转义。
System.out.println(Puzzlers.class.getName().replaceAll(".", "/") + ".class");
//输出为://///////////////////////////////////.class
System.out.println(Puzzlers.class.getName().replaceAll("\\.", "/") + ".class");
//输出为:com/jaeson/javastudy/puzzler/Puzzlers.class
		
//在替代字符串中出现的反斜杠会把紧随其后的字符进行转义,从而导致其被按字面含义而处理了。
//Exception:String index out of range
try {
	System.out.println(Puzzlers.class.getName().replaceAll("\\.", File.separator) + ".class");
} catch (StringIndexOutOfBoundsException ex) {
	System.out.println("StringIndexOutOfBoundsException: " + ex.getMessage());
}

//使用1.5新的replace方法:它将模式和替代物都当作字面含义的字符串处理。
System.out.println(Puzzlers.class.getName().replace(".", File.separator) + ".class");

 

//每当你要将一个byte 序列转换成一个String 时,你都在使用某一个字符集,不管你是否显式地指定了它。
//如果你想让你的程序的行为是可预知的,那么就请你在每次使用字符集时都明确地指定。
byte bytes[] = new byte[256];
for (int j = 0; j < 256; j++)
	bytes[j] = (byte) j;
try {
	//不指定字符集时使用的是平台的缺省字符集,输出是不可预知的
	System.out.println(new String(bytes));
	//正确的用法
	System.out.println(new String(bytes, "ISO-8859-1"));
} catch (UnsupportedEncodingException ex) {}

 

//String类型的编译期常量是内存限定的。
//任何两个String	类型的常量表达式,如果标明的是相同的字符序列,那么它们就用相同的对象引用来表示。
//+ 操作符,不论是用作加法还是字符串连接操作,它都比 == 操作符的优先级高。

final String pig = "length: 10";
final String dog = "length: " + pig.length();
System.out. println("Animals are equal: " + pig == dog);	//false
//相当于执行下面的语句:
System.out. println(("Animals are equal: " + pig) == dog);

System.out.println("Animals are equal: " + (pig == dog));	//Animals are equal: false
//正确的做法:
System.out.println("Animals are equal: " + pig.equals(dog));	//Animals are equal: true

 

//char 数组不是字符串。要想将一个char 数组转换成一个字符串,就要调用String.valueOf(char[])方法。
//否则进行+字符串连接操作时会调用Object.toString()。

System.out.println(new char[] { '1', '2', '3' });			//123
System.out.println("" + new char[] { '1', '2', '3' });		//[C@191c0b76

 

//使用字符串连接操作符使用格外小心。+ 操作符当且仅当它的操作数中至
//少有一个是String 类型时,才会执行字符串连接操作;否则,它执行的就是加法。
//编译器在计算常量表达式'H'+'a'时,是通过我们熟知的拓宽原始类型转换将两
//个具有字符型数值的操作数('H'和'a')提升为int 数值而实现的。

System.out.println('H' + 'a');	//169
System.out.println("2 + 2 = " + 2 + 2);	//2 + 2 = 22

 

//在字符串和字符字面常量中要优先选择转义字符序列,而不是Unicode 转义字符。
//除非确实是必需的,否则就不要使用Unicode 转义字符。
//Java 对在字符串字面常量中的Unicode 转义字	符没有提供任何特殊处理。
//编译器在将程序解析成各种符号之前,先将Unicode转义字符转换成为它们所表示的字符。

// \u0022 是双引号的Unicode 转义字符
System.out.println("a\u0022.length()+\u0022b".length());	//2
//可以使用转义字符序列来实现: 转义字符序列是一个反斜杠后面紧跟着一个需要转义的字符
System.out.println("a\".length()+\"b".length());			//14

 

/**
 * c:\u2222test
 */
//(\ u)表示的是一个Unicode 转义字符的开始。这些字符后面必须紧跟四个十六进制的数字。
//否则编译器被要求拒绝该程序。Unicode 转义字符必须是良构的,即使是出现在注释中也是如此。
//要确保字符\ u 不出现在一个合法的Unicode 转义字符上下文之外,
//即使是在注释中也是如此。在机器生成的代码中要特别注意此问题。
		
//Unicode 转义字符只有在你要向程序中插入用其他任何方式都
//无法表示的字符时才是必需的,除此之外的任何情况都不应该避免使用它们。
//下面Unicode代码相当于:System.out.println("Hello w"+"orld");
//输出Hello world

\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074
\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0020
\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u0022\u002b
\u0022\u006f\u0072\u006c\u0064\u0022\u0029\u003b

 

分享到:
评论

相关推荐

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节;

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...

    java 字符串 正则表达式 详细实例代码

    通过运行和调试这些代码,你可以加深对Java字符串、正则表达式以及日期时间格式化的理解。 总之,理解和熟练掌握Java中的字符串操作、正则表达式以及日期时间格式化对于任何Java开发者来说都是必不可少的技能。通过...

    java字符串练习

    本文将围绕“java字符串练习”这一主题,深入探讨如何解析字符串、逆序输出字符串以及处理特定格式的字符串数据。 首先,我们要讨论的是字符串解析。在Java中,我们可以使用`String`类提供的方法或正则表达式来实现...

    java字符串的各种编码转换

    ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理国际化应用时,理解并掌握各种字符编码格式变得尤为重要。下面将介绍几种常见的字符编码格式以及如何在Java中实现...

    Java字符串长度不够前面或后面补0.txt

    ### Java字符串长度不够前面或后面补0 在Java编程中,有时我们需要确保字符串达到特定的长度,如果实际长度不足,则需要在字符串的前部或后部添加特定字符(如0)来填充,使得最终字符串满足预设长度的要求。本文将...

    java字符串中${}或者{}等的占位符替换工具类

    Java字符串中${}或者{}等占位符替换工具类 Java字符串中${}或者{}等占位符替换工具类是一个功能强大且实用的工具类,它可以将Java字符串中的占位符依次替换为指定的值。该工具类的主要功能是实现占位符的替换,即将...

    Java字符串转换为日期和时间比较大小[归类].pdf

    Java 字符串转换为日期和时间比较大小 Java 字符串转换为日期和时间比较大小是 Java 开发中常见的操作。下面我们将详细介绍两种方法来实现 Java 字符串转换为日期和时间比较大小。 方法一:使用 SimpleDateFormat ...

    java 字符串a-z排序

    在Java编程语言中,对字符串中的字符进行a到z排序是一项常见的操作,特别是在处理文本数据或需要对字母顺序排列的场景。本知识点将详细讲解如何实现这个功能。 首先,我们需要理解字符串在Java中的本质。在Java中,...

    JAVA 字符串 操作

    在Java编程语言中,字符串...以上只是Java字符串操作的一小部分,实际开发中还有许多其他方法和特性,如国际化(I18N)、正则表达式等,都需要程序员灵活掌握。理解并熟练运用这些操作,能有效提高代码质量和效率。

    java 字符串工具类 java 字符串工具类

    java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java ...

    JAVA字符串处理函数列表一览

    ### JAVA字符串处理函数列表一览 在Java编程语言中,字符串处理是极其常见且重要的操作之一。字符串类`String`提供了丰富的内置方法来帮助开发者高效地完成各种字符串操作任务。本文将详细解读`String`类中的一些...

    java字符串内存计算

    ### Java字符串内存计算 在Java开发中,理解内存管理至关重要,特别是对于字符串处理而言。本文将深入探讨如何在Java中计算字符串所占用的内存空间,包括现有的计算方法、其局限性以及具体的计算公式。 #### 计算...

    Java字符串查找和提取异常处理

    ### Java字符串查找和提取异常处理 #### 概述 本文将详细介绍如何在Java中实现字符串查找与提取功能,并在此过程中妥善处理可能出现的各种异常情况。通过分析提供的代码示例`IndexOfAndCharAt.java`,我们将了解到...

    JAVA 字符串应用笔记

    在Java编程语言中,字符串是极其重要且常用的数据类型,尤其在Android开发中更是不可或缺。字符串主要用于处理文本信息,如用户输入、文件内容、网络数据等。以下是对"JAVA 字符串应用笔记"中可能涉及的一些核心知识...

    java字符串处理取出括号内的字符串

    在Java编程语言中,字符串处理是一项常见的任务,特别是在解析、分析或操作文本数据时。本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标...

    JAVA字符串操作类CTool.java字符转换类.rar

    JAVA字符串操作类CTool.java字符转换类,此类中收集Java编程中WEB开发常用到的一些工具。为避免生成此类的实例,构造方法被申明为private类型的。封装的功能:字符串从GBK编码转换为Unicode编码、对字符串进行md5...

    Java字符串前面或后面补0(适用于等不同长度比较) .txt

    Java字符串长度不够,将其前面补0或者后面补0,适用于字典序比较前,将要比较字符串的位数保持一致,再进行比较。

    JAVA字符串处理函数列表一览.

    ### JAVA字符串处理函数列表一览 在Java编程语言中,字符串处理是极其常见且重要的操作之一。Java为`String`类提供了丰富的内置方法,使得开发者能够高效地进行字符串操作。本文将详细介绍部分常用的字符串处理函数...

    java字符串处理-中英文-非常有用的

    根据提供的标题、描述、标签及部分内容,我们可以总结出以下关于Java字符串处理的相关知识点: ### Java字符串处理技术:中文与英文的兼容性 在Java中,处理字符串是非常常见且重要的任务之一,尤其是在涉及到国际...

Global site tag (gtag.js) - Google Analytics