- 浏览: 400496 次
文章分类
- 全部博客 (327)
- Android (114)
- Java (13)
- Java基础 (14)
- Glib (2)
- linux (15)
- extjs (5)
- eclipse (2)
- Asterisk (56)
- MYSQL (6)
- 数据库 (9)
- PHP (7)
- C# (18)
- 杂谈~~ (1)
- web开发前端 (3)
- 网络编程 (2)
- Opensips (2)
- voip (3)
- debian (7)
- openfire (15)
- wordpress (1)
- 版本控制 (1)
- Android 线程服务广播 (1)
- SRTP (2)
- 单片机及ARM等 (3)
- 基础知识 (5)
- asp.net (2)
- 单片机 (1)
- 设计模式及架构 (1)
- 安全 (1)
- Cubieboard 草莓树莓各类派 Android开发板 (1)
- J2EE (2)
- BootStrap (3)
- BootStrap web前端开发 (1)
- web前端开发 (4)
- object-c (1)
- openwrt (8)
- 智能家居 (4)
- Node.js (4)
最新评论
-
xiaoxiecomeon:
你这个程序一存在线程的时间片相互抢占的问题,运行时间长了很可能 ...
Runnable 和 Thread -
dotjar:
我觉得话应该这么说:引用TestThread tt = new ...
Runnable 和 Thread -
dagf113225:
调用TelephonyManager的隐藏API是先参考Fra ...
Android提高第十四篇之探秘TelephonyManager
String类及String类的相关操作方法,this关键字,static关键字,内部类
(1)String的两种实例化方式
public String(String origiral)///可以接收一个String类的对象,并重新实例化String对象,除了此方法之外String还可以采用直接赋值的方式进行对象的实例化。
public class StringDemo01{
public static void main(String args[]){
String str1 = "hello" ; // 使用直接赋值的方式完成
String str2 = new String("MLDN") ; // 通过构造方法完成
System.out.println(str1 + str2) ; // 进行字符串的连接操作
}
};
(2)String的比较方式
public class StringDemo02{
public static void main(String args[]){
String str1 = "hello" ; // 使用直接赋值的方式完成
String str2 = new String("hello") ; // 通过构造方法完成
String str3 = str2 ; // 通过构造方法完成
System.out.println("str1 == str2 --> " + (str1==str2)) ; // false
System.out.println("str1 == str3 --> " + (str1==str3)) ; // false
System.out.println("str2 == str3 --> " + (str2==str3)) ; // true
}
};
“= =”实际上比较的是两个对象的地址是否相等,具体的是比较地址的值,因为地址是以数值的形式存在的。
但是如果需要比较字符串的内容,就需要使用String类中的equals()方法完成比较:
public boolean equals(String str)
以上程序修改为str1.equals(str2)
(3)一个字符串实际上就是String的匿名对象
一个字符串使用" "括起来,那么一个字符串常量实际上本身就属于String的一个匿名对象
(4)String的两种实例化方式的区别
String str1="hello"///表示在堆中开辟一个空间并将该空间地址赋值给栈中的str1
String str1=new String("hello")///表示先在堆中开辟一个字符串的匿名对象,然后在用new开辟一片新的空间,并将原对象值赋值给新的空间中,并将新开辟的空间地址赋值给栈内的str1,而原来的匿名对象所在空间为垃圾空间
public class StringDemo05{
public static void main(String args[]){
String str1 = "hello" ; // 使用直接赋值的方式完成
String str2 = "hello" ; // 使用直接赋值的方式完成
String str3 = "hello" ; // 使用直接赋值的方式完成
System.out.println("str1 == str2 --> " + (str1==str2)) ;
System.out.println("str2 == str3 --> " + (str2==str3)) ;
System.out.println("str1 == str3 --> " + (str1==str3)) ;
}
};
结构输出的都是true,表示的是同一个空间引用,因为对于String来讲使用直接赋值的方式会在字符串池中保存,如果之后再声明字符串的时候发现内容一样,则不会重新开辟空间,而是从内存池中取出数据继续使用。
(5)字符串的内容声明后则无法修改
public class StringDemo06{
public static void main(String args[]){
String str = "hello" ;//在堆中生成一个空间,将空间地址赋值给str中
str += " world" ;//表示先开辟一个String的匿名对象,保存在新的空间中,然后将两String连接保存在另外的一个新的空间中,最后将新空间的地址值赋值给str,str原指向断开
System.out.println(str) ;
}
};
|
|||
|
|||
|
|
|
|
(6)String类的常用操作方法
char charAt(int index)//根据字符串中的索引找到指定位置的字符
public char[] toCharArray()//将字符串变为字符数组
public String(char[] value)//将全部的字符数组变为String类型
public String(char[] value,int offest,int count )//将数组中的offest起始位置开始,长度为count的字符转换为数组
String concat(String str)//字符串的链接也可以用+号连接
(7)将字符串与字节数组
public byt[] getBytes()//将字符串变为字节数组
public String(byte[] bytes)//将字节数组全部变为字符串
public String(byte[] bytes,int offset ,int length)//将字节数组的offset开始,长度为length变为字符串
(8)判断是否以指定的字符串开头或结尾
public boolean startsWith(String prefix)//判断是否指定的字符串开头
public boolean endsWith(String suffix)//判断是否以指定的字符串结尾
(9)替换操作
public String replaceAll(String regex,String replacement)//将字符串中的regex采用replacement替换
(10)字符串截取
public String substring(int beginIndex)//从beginIndex开始全部截取
public String substring(int beginIndex,int endIndex)//从beginIndex开始到endIndex进行截取
(11)字符串拆分
public String[] split(String regex)//按照字符串regex拆分成字符串数组,如果两个引号见什么都不写则全部拆分
(12)字符串查找
public int indexOf(String str)//查找指定字符串的位置,如果查找不到返回-1,查找到返回0
if(str.indexOf(str2)!=-1)//返回的值不等于-1则查找到
public int indexOf(String str,int fromIndex )//从fromIndex开始查找str的位置
public boolean contains(String s)//查找指定的字符串,返回值我true或false
(13)字符串的其他操作
public String trim()//去掉左右空格
public int length()//取得字符串长度
public String toUpperCase()//转换成大写
public String toLowerCase()//转换成小写
发表评论
-
为什么子类不能访问基类的private成员?为什么要这样设计?
2014-12-10 10:35 834看到很多朋友提问“为什么子类不能访问基类的private成员 ... -
论J2EE程序员的武功修为(转)
2014-11-24 11:14 549经常会跟一些朋友讨论怎么样才能学好Java,学到什么程度才 ... -
tomcat登录的用户名和密码
2014-11-17 17:20 404在tomcat下的conf/tomcat-user.xml中 ... -
Maven 2.0:编译、测试、部署、运行
2014-11-17 15:07 889Maven 2.0:编译、测试、部署、运行 摘 ... -
CentOS yum安装sun Java jre jdk和openjdk
2013-07-14 16:33 896在Linux下的tty终端下, ... -
Java中List和ArrayList的区别
2013-07-10 11:15 549List是一个接口,而ListArray是一个类。 List ... -
有关Java中日期格式化的效率实录
2013-06-09 17:32 1036java中格式化日期为固定格式的字符串,无外乎有两种方法:D ... -
关于JAVA for循环效率的问题
2013-06-09 17:18 1703今天在C#里面看到:之前一直认为for (int i = 0 ... -
java中string型变量判断是为空的正确写法
2013-06-08 15:41 1117首先你要明白,字符串为空的说法,null还是"&qu ... -
java抽象类怎么实例化了
2013-06-08 14:29 1655Q:程序中A句实例化了抽象类OutputStream 怎么回 ... -
JAVA泛型简析
2013-04-22 11:23 711泛型是JDK1.5支持的新功能之一,在目前的JAVA编程中被 ... -
list转string[]数组
2012-02-01 10:44 838String[] str= (String[]) lis ... -
修改ArrayList里面的内容
2012-01-29 23:21 899public static void main(S ... -
String.split()方法
2012-01-16 23:57 707在java.lang包中有String.split()方法,返 ... -
JAVA中int转String类型效率比较
2012-01-06 00:03 1060大家都知道JAVA中 int 类型要转化成 String 类型 ... -
利用Handler定时更新Android UI
2012-01-05 23:07 873在 Android 里定时更新 UI,通常使用的是 java. ... -
Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
2012-01-05 23:04 1082方法一:(java习惯,在android不推荐使用) ... -
用java匿名类来简化调试
2011-11-25 14:05 786在Java中,匿名类(Anonym ... -
关于java的new对象问题
2011-11-23 16:59 1446关于java的new对 ... -
Java中Interface的用法
2011-11-21 13:40 1060Java中在接口的应用中,要注意一下几点:<1>接 ...
相关推荐
北京动力节点-Java编程零基础教程-070-Java基本语法-数据类型-String类型.avi 北京动力节点-Java编程零基础教程-071-Java基本语法-运算符-算术运算基本用法.avi 北京动力节点-Java编程零基础教程-072-Java基本...
计算机后端-Java-Java核心基础-第21章 常用类 08. String不同拼接操作的对比.avi
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
Java常用类与API--String的实例化与连接操作
一般的dbf文件都是数据库操作文件,用c语言进行操作的dll很多,但是java操作的很少,我找到了一个javadbf-0[1].4.0.jar的包,但是操作效果很不理想,尤其是末尾空格和乱码问题,于是我在这个jar包的基础上进行进一步...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
< java.lang >String字符串:★★★☆ 71 < java.lang >StringBuffer字符串缓冲区:★★★☆ 73 < java.lang >StringBuilder字符串缓冲区:★★★☆ 74 基本数据类型对象包装类★★★☆ 75 集合框架:★★★★★,...
4 软 件 最 终 产 品 :用 Java 语 言 开 发 的 软 件 可 以 具 有 可视化 、 可 听 化 、 可 操作 化 的 效 果 ,这 要 比 电 视 、 电 影 的 效果 更 为 理 想 ,因 为 它 可 以做 到 "即 时 、 交 互、 动 画 与 ...
字符串(java.lang.String类)的使用 90 字符串相等的判断 92 思考作业 93 上机作业 94 第四章 异常机制 95 导引问题 95 异常(Exception)的概念 96 异常分类 96 Error 97 Error和Exception的区别 97 Exception 97 ...
通用操作类,例如String、数字、日期、各种校验等 - 2.文档操作,excel、pdf等 - 3.加密解密,如MD5、BASE64,AES、DES等 - 4.文件操作,包括file、image、zip等 - 5.http - 6.jdbc - 7.json - 8.邮件 - 9.二维码、...
一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入...
# Java基础知识课件教程浓缩版 Java是一种跨平台、面向对象的编程语言,广泛应用于企业级应用、移动应用、游戏开发等领域。本教程为初学者设计,旨在快速掌握Java编程的核心概念。 一、Java入门 - Java概述:介绍...
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...
java7 源码 java-convert-example 平时的java项目中会存在各种对象的互相转换的情况,本项目记录一些常见对象...流基础对象: InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。 Outpu
Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte...
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的