java基础---字符串string
1、字符创的概念
java字符串就是Unicode字符序列。例如,串“Java\u2122”由5个Unicode字符J、a、v、a和TM。java没有内置的字符串类型,而是在标准库Java类库中提供了一个预定义类String。
2、子串
String类的substring方法可以从一个较大的字符串提取出一个子串。
String greeting ="Hello";
String s = greeting.substring(0,3);
创建了一个由字符“Hel”组成的字符串。 substring方法的第二个参数是不想复制的第一个位置。这里要复制位置为0、1和2(从0到2, 包括0和2)的字符。在substring中从0开始计数,直到3为止,但不包含3。
substring的工作方式有一个优点:容易计算子串的长度。字符串s.substring(a, b)的长度为ba。例如,子串“Hel”的长度为3-0=3。
3、拼接
与大多数程序设计语言一样,Java语言允许使用+号连接两个字符串。
String str1 = "I Love java!";
String str2= "I Love China!";
String str3 = str1+str2;
上述将“I Love Java!I Love China”赋值给了str3;e(注意,单词之间没有空格,+号按照给 定的次序将两个字符串拼接起来)。 当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串。
4、不可变字符串
String类没有提供用于修改字符串的方法,如果希望将greeting的内容修改为“Help!”,不能直接地将greeting的最后两个位置的字符修改为‘P’和‘!’!但是可以用替换来做出“修改”这一意义。
greeting = greeting.substring(0,3)+"p!";
上述语句将greeting当前值修改为Help!
由于不能修改Java字符串中的字符,所以在Java文档中将String类对象称为不可变字符串, 如同数字3永远是数字3一样,字符串“Hello”永远包含字符H、e、l、l和o的代码单元序列, 而不能修改其中的任何一个字符。当然,可以修改字符串变量greeting,让它引用另外一个字 符串,这就如同可以将存放3的数值变量改成存放4一样。
5、检测字符串是否相等
可以使用equals()方法检测两个字符串内容是否相等。
s.equals(t); 如果字符串s与字符串t相等,返回true,否则返回false。需要注意,s和t都是字符串变量,也可以是字符串常量。
一定不能用“==”来检测两个字符串是否相等!这个运算符只能够确定两个字符串是否防放置在同一个位置上,比较的是内容和地址都要相等时2个字符串才会相等。当然,如果字符串放在同一个位置上,它们必然相等,但是完全有可能内容相同的多个字符串在拷贝放置在不同位置上。
String greeting = "hello";
if(gerrting =="hello")
//probably true
if(greeting.substring(0,3)=="hel")
//probably false;
如果虚拟机始终将相同的字符串共享,就可以使用"=="运算符判断是否相等,但是实际上只有字符串常量才是共享的,而+或substring 等操作产生的结果并不是共享的。
6、字符串API
• char charAt (int index) 返回给定位置的代码单元。除非对底层的代码单元感兴趣,否则不需要调用这个方法。
• int codePointAt(int index) 5.0 返回从给定位置开始或结束的代码点。
• int offsetByCodePoints(int startIndex, int cpCount) 5.0 返回从startIndex代码点开始,位移cpCount后的代码点索引。
• int compareTo(String other) 按照字典顺序,如果字符串位于other之前,返回一个负数;如果字符串位于other之后, 返回一个正数;如果两个字符串相等,返回0。
• boolean endsWith(String suffix) 如果字符串以suffix结尾,返回true。
• boolean equals(Object other) 如果字符串与other相等,返回true。
• boolean equalsIgnoreCase(String other) 如果字符串与other相等(忽略大小写),返回true。
• int index0f(String str)
• int index0f(String str, int fromIndex) Java基本的程序设计结构 47 java.lang.string 1.0
• int index0f(int cp) • int index0f(int cp, int fromIndex) 返回与字符串str或代码点cp匹配的的第一个子串的开始位置。这个位置从索引0或 fromIndex开始计算。如果在原始串中不存在str,返回-1。
• int lastIndex0f(String str)
• int lastIndex0f(String str, int fromIndex)
• int lastindex0f(int cp) • int lastindex0f(int cp, int fromIndex) 返回与字符串str或代码点cp匹配的最后一个子串的开始位置。这个位置从原始串尾端或 fromIndex开始计算。
• int length( ) 返回字符串的长度。
• int codePointCount(int startIndex, int endIndex) 5.0 返回startIndex和endIndex-1之间的代码点数量。没有配成对的代用字符将计入代码点。
• String replace(CharSequence oldString,CharSequence newString) 返回一个新字符串。这个字符串用newString代替原始字符串中所有的oldString。可以用 String或StringBuilder对象作为CharSequence参数。
• boolean startsWith(String prefix) 如果字符串以preffix字符串开始,返回true。
• String substring(int beginIndex) • String substring(int beginIndex, int endIndex) 返回一个新字符串。这个字符串包含原始字符串中从beginIndex到串尾或endIndex-1的所 有代码单元。
• String toLowerCase( ) 返回一个新字符串。这个字符串将原始字符串中的所有大写字母改成了小写字母。
• String toUpperCase( ) 返回一个新字符串。这个字符串将原始字符串中的所有小写字母改成了大写字母。
• String trim( ) 返回一个新字符串。这个字符串将删除了原始字符串头部和尾部的空格。
java基础---字符串string的更多相关文章
- Java基础 - 字符串 String
		
字符串就是用字符拼接成的文本值,字符串在存储上类似数组,在java语言中把字符串当做对象进行处理 创建字符串 package com.mingri.chapter_02; public class d ...
 - Java基础——字符串String
		
String类 1. String类位于java.lang包中,使用时无需导包. 2. 创建字符串的两种方式: ① 直接指定(字面量声明):String str = "abc"; ...
 - Java基础-字符串(String)常用方法
		
Java基础-字符串(String)常用方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java的API概念 Java的API(API:Application(应用) Pr ...
 - Java基础-字符串连接运算符String link operator
		
Java基础-字符串连接运算符String link operator 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 字符串链接运算符是通过“+”进行拼接的. 一.使用“+”进行字 ...
 - Java基础之String、StringBuffer、StringBuilder浅析
		
Java基础之String.StringBuffer.StringBuilder浅析 一.前言: 位于java.lang包下的String.StringBuilder.StringBuffer一般都是 ...
 - Java常量字符串String理解
		
Java常量字符串String理解 以前关于String的理解仅限于三点:1.String 是final类,不可继承2.String 类比较字符串相等时时不能用“ == ”,只能用 "eq ...
 - java中字符串String 转 int(转)
		
java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法 ...
 - Java中字符串string的数据类型
		
Java中字符串string的数据类型 时间:2017-07-03 08:01:47 YuanMxy 原文:https://blog.csdn.net/YuanMxy/article/details/ ...
 - java基础18 String字符串和Object类(以及“equals” 和 “==”的解析)
		
一.String字符串 问:笔试题:new String("abc")创建了几个对象?答:两个对象,一个对象是 位于堆内存,一个对象位于字符串常量池 class Demo17 { ...
 
随机推荐
- 201521123104 《Java程序设计》第6周学习总结
			
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1. clone方法 1.1 Object ...
 - 201521123024 《Java程序设计》第5周学习总结
			
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 不能编 ...
 - Java中如何引入结对编程
			
引自微信: 很多同学说: 我程序写得好,ACM比赛能得分, 就好了,软件工程讲的那些有用么? 有些学校的 <软件工程>课,由于要求太简单,反而不能说明软件工程的价值. 其实好办, 让学生结 ...
 - 201521123105 第11周Java学习总结
			
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...
 - 201521123050 《Java程序设计》第12周学习总结
			
1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. 1 ...
 - 201521123068 《java程序设计》第9周学习总结
			
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...
 - Java课程设计-计算器 郑子杰(201521123021)
			
1.团队课程设计博客链接 http://www.cnblogs.com/I-love-java/p/7058752.html 2.个人负责模块或任务说明 ①图形界面的初始化 ②图形界面的排版设计 ③主 ...
 - Signal ()函数详细介绍 Linux函数(转)
			
Signal ()函数详细介绍 Linux函数 收藏人:紫火神兵 2012-09-27 | 阅:5659 转:22 | 来源 | 分享 signa ...
 - Mysql的基本命令图
			
如果看不清的,右键图片在新标签页打开! 这是经过我的整理出来的!如果有重要的再补充把-..
 - JavaSE(十二)之IO流的字节流(一)
			
前面我们学习的了多线程,今天开始要学习IO流了,java中IO流的知识非常重要.但是其实并不难,因为他们都有固定的套路. 一.流的概念 流是个抽象的概念,是对输入输出设备的抽象,Java程序中 ...