Java中的字符串
Java语言中,把字符串作为对象来处理,类String就可以用来表示字符串(类名首字母都是大写的)。
1.字符串常量
字符串常量是用双引号括住的一串字符。
例如:"Hello World"
2.String表示字符串变量
String用来可以创建字符串对象,String使用示例:
- String s=new String() ; //生成一个空串
- String s1="Hello World"; //声明s1为字符串"Hello World"的引用
3. 字符串 判断相等的方法String.equals()
在Java中判等是有讲究的,往往直接使用==得出的答案可能是正确的也可能是错误的,看这段示例:
- String s1="a";
- String s2="a";
- s1+="b";
- System.out.println(s1=="ab"); // false
- System.out.println(s1==s2+"b"); // false
- System.out.println(s2=="a"); // true
- System.out.println(s1.equals("ab")); // true
8 System.put.println(new String("ab")==new String("ab")); // false
看了这段代码,你可能会明白了。==判断不仅判断内存地址中的内容是不是相等,还要判断引用的地址是不是相等;而equals()方法则是用来判断内容相等的,这下明白了吧?
还有以下几点需要注意的地方:
- 在Java中,内容相同的字串常量(“a”)只保存一份以节约内存,所以s1,s2实际上引用的是同一个对象。
- 编译器在编译s1一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“ab”)。这种优化工作由Java编译器自动完成。
- 当直接使用new关键字创建字符串对象时,虽然值一致(都是“ab”),但仍然是两个独立的对象。
4、访问字符串
类String中提供了length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、getBytes( )、toCharArray( )等方法。
- public int length() 此方法返回字符串的字符个数
- public char charAt(int index) 此方法返回字符串中index位置上的字符,其中index 值的 范围是0~length-1
- public int indexOf(int ch)
- public lastIndexOf(in ch)
返回字符ch在字符串中出现的第一个和最后一个的位置
- public int indexOf(String str)
- public int lastIndexOf(String str)
返回子串str中第一个字符在字符串中出现的第一个和最后一个的位置
- public int indexOf(int ch,int fromIndex)
- public lastIndexOf(in ch ,int fromIndex)
返回字符ch在字符串中位置fromIndex以后出现的第一个和最后一个的位置
- public int indexOf(String str,int fromIndex)
- public int lastIndexOf(String str,int fromIndex)
返回子串str中的第一个字符在字符串中位置fromIndex后出现的第一个和最后一个的位置。
- public void getchars(int srcbegin,int end ,char buf[],int dstbegin)
srcbegin 为要提取的第一个字符在源串中的位置, end为要提取的最后一个字符在源串中的位置,字符数组buf[]存放目的字符串,dstbegin 为提取的字符串在目的串中的起始位置。
- public void getBytes(int srcBegin, int srcEnd,byte[] dst, int dstBegin)
参数及用法同上,只是串中的字符均用8位表示。
5、修改字符串
修改字符串的目的是为了得到新的字符串,有关各个方法的使用,参考java API。
String类提供的方法:
- concat( )
- replace( )
- substring( )
- toLowerCase( )
- toUpperCase( )
- public String contat(String str);
用来将当前字符串对象与给定字符串str连接起来。
- public String replace(char oldChar,char newChar);
用来把串中出现的所有特定字符替换成指定字符以生成新串。
- public String substring(int beginIndex);
- public String substring(int beginIndex,int endIndex);
用来得到字符串中指定范围内的子串。
- public String toLowerCase();
把串中所有的字符变成小写。
- public String toUpperCase();
把串中所有的字符变成大写。
Java中的字符串的更多相关文章
- [原创]Java中的字符串比较,按照使用习惯进行比较
java中的字符串比较一般可以采用compareTo函数,如果a.compareTo(b)返回的是小于0的数,那么说明a的unicode编码值小于b的unicode编码值. 但是很多情况下,我们开发一 ...
- 理解Java中的字符串类型
1.Java内置对字符串的支持: 所谓的内置支持,即不用像C语言通过char指针实现字符串类型,并且Java的字符串编码是符合Unicode编码标准,这也意味着不用像C++那样通过使用string和w ...
- Java中的字符串驻留
转自:http://www.cdtarena.com/javapx/201307/9088.html 最近在工作的时候,一句再正常不过的代码String a = “hello” + “world”;被 ...
- Java中的字符串拼接
Java中的字符串拼接 1.设计源码 /** * @Title:IndexOf.java * @Package:com.you.freemarker.model * @Description: * @ ...
- java中,字符串类型的时间数据怎样转换成date类型。
将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:1.定义一个字符串类型的时间:2.创建一个SimpleDateFormat对象并设置格式:3.最后使用 ...
- Android学习笔记----Java中的字符串比较
用习惯了C#.C++,在做字符串比较时想当然地使用如下语句: string str1 = "abcd", str2 = "abcd"; if(str1==str ...
- 转载:Java中的字符串常量池详细介绍
引用自:http://blog.csdn.net/langhong8/article/details/50938041 这篇文章主要介绍了Java中的字符串常量池详细介绍,JVM为了减少字符串对象的重 ...
- 《Java入门第三季》第二章 认识 Java 中的字符串
什么是 Java 中的字符串.1.在Java的世界里,字符串被作为String类型的对象处理. 2.通用的初始化的方式:String s = new String("i love you & ...
- 为什么Java中的字符串是不可变的?
原文链接:https://www.programcreek.com/2013/04/why-string-is-immutable-in-java/ java字符串是不可变的.不可变类只是一个不能修改 ...
- 详解Java中的字符串
字符串常量池详解 在深入学习字符串类之前, 我们先搞懂JVM是怎样处理新生字符串的. 当你知道字符串的初始化细节后, 再去写String s = "hello"或String s ...
随机推荐
- SQL之case when then用法
case具有两种格式.简单case函数和case搜索函数. 按 Ctrl+C 复制代码 这两种方式,可以实现相同的功能.简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限 ...
- html中定义标签字母的大小写
定义和用法: text-transform 属性控制文本的大小写. 值和属性: 值 描述 none 默认.定义带有小写字母和大写字母的标准的文本. capitalize 文本中的每个单词以大写字母开头 ...
- Panorama和Pivot的区别
Panorama 1.提供了更丰富的用户体验(建议最多4个Items项) 2.Item可以设置屏幕方向为水平,支持多于一个屏幕的显示 3.可以使用任意大小的背景图片,Panorama会自动地缩放为屏幕 ...
- JavaScript Arguments.callee解释
Arguments.callee : 返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文.[function.]arguments.callee可选项 functio ...
- Android 内存管理 &Memory Leak & OOM 分析
转载博客:http://blog.csdn.net/vshuang/article/details/39647167 1.Android 进程管理&内存 Android主要应用在嵌入式设备当中 ...
- js 根据屏幕大小调用不同的css文件
原因:屏幕大小不一样,网站看起来总觉得怪怪的,所以,针对不同大小的屏幕,写了不同的css,写完了,要解决的问题就是:怎么根据屏幕的大小来引用不同的CSS,下面就是解决方法了. 解决方法:首先,在hea ...
- Hibernate学习之——Hibernate环境搭建
之前在写关于安卓闹钟的教程,写了一半就没后一半了,其实自己也没做好,在校外实习,校内毕业实习又有任务,只能先放放了,等毕业实习结束之后,在继续安卓闹钟开发之旅,相信这个时间不会很久的.现在毕业实习用到 ...
- ASP.NET MVC 6 一些不晓得的写法
今天在看 Scott Guthrie 的一篇博文<Introducing ASP.NET 5>,在 MVC 6 中,发现有些之前不晓得的写法,这边简单记录下,算是对自己知识的补充,有些我并 ...
- spring源码分析之cache注解
Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如EHCache 或者 OSCache),而是一个对缓存使用的抽象 ...
- Java服务器对外提供接口以及Android端向服务器请求数据
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...