- 浏览: 411774 次
文章分类
- 全部博客 (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 851看到很多朋友提问“为什么子类不能访问基类的private成员 ... -
论J2EE程序员的武功修为(转)
2014-11-24 11:14 572经常会跟一些朋友讨论怎么样才能学好Java,学到什么程度才 ... -
tomcat登录的用户名和密码
2014-11-17 17:20 428在tomcat下的conf/tomcat-user.xml中 ... -
Maven 2.0:编译、测试、部署、运行
2014-11-17 15:07 907Maven 2.0:编译、测试、部署、运行 摘 ... -
CentOS yum安装sun Java jre jdk和openjdk
2013-07-14 16:33 917在Linux下的tty终端下, ... -
Java中List和ArrayList的区别
2013-07-10 11:15 575List是一个接口,而ListArray是一个类。 List ... -
有关Java中日期格式化的效率实录
2013-06-09 17:32 1059java中格式化日期为固定格式的字符串,无外乎有两种方法:D ... -
关于JAVA for循环效率的问题
2013-06-09 17:18 1735今天在C#里面看到:之前一直认为for (int i = 0 ... -
java中string型变量判断是为空的正确写法
2013-06-08 15:41 1146首先你要明白,字符串为空的说法,null还是"&qu ... -
java抽象类怎么实例化了
2013-06-08 14:29 1678Q:程序中A句实例化了抽象类OutputStream 怎么回 ... -
JAVA泛型简析
2013-04-22 11:23 730泛型是JDK1.5支持的新功能之一,在目前的JAVA编程中被 ... -
list转string[]数组
2012-02-01 10:44 860String[] str= (String[]) lis ... -
修改ArrayList里面的内容
2012-01-29 23:21 918public static void main(S ... -
String.split()方法
2012-01-16 23:57 729在java.lang包中有String.split()方法,返 ... -
JAVA中int转String类型效率比较
2012-01-06 00:03 1080大家都知道JAVA中 int 类型要转化成 String 类型 ... -
利用Handler定时更新Android UI
2012-01-05 23:07 894在 Android 里定时更新 UI,通常使用的是 java. ... -
Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
2012-01-05 23:04 1100方法一:(java习惯,在android不推荐使用) ... -
用java匿名类来简化调试
2011-11-25 14:05 817在Java中,匿名类(Anonym ... -
关于java的new对象问题
2011-11-23 16:59 1462关于java的new对 ... -
Java中Interface的用法
2011-11-21 13:40 1096Java中在接口的应用中,要注意一下几点:<1>接 ...
相关推荐
#### 一、Java 基础概述 在Java中,`String`类是非常重要的一个类,它提供了大量的方法来处理字符串。字符串在Java中是不可变的对象,也就是说一旦创建了一个`String`对象,它的内容就不能被改变。这使得`String`...
北京动力节点-Java编程零基础教程-070-Java基本语法-数据类型-String类型.avi 北京动力节点-Java编程零基础教程-071-Java基本语法-运算符-算术运算基本用法.avi 北京动力节点-Java编程零基础教程-072-Java基本...
计算机后端-Java-Java核心基础-第21章 常用类 08. String不同拼接操作的对比.avi
Java基础知识中,Java常用类是非常重要的一部分,本节讲义将对String、StringBuffer、StringBuilder、Date、DateFormat、Random、Math等类进行详细的介绍。 String类 String类是Java中最基本的字符串类,它是final...
综上所述,`mysql-connector-java-5.1.27`是Java开发者与MySQL数据库交互的基础,理解其工作原理和使用方法对于开发基于Java的数据库应用至关重要。正确地配置和使用此驱动包,可以使Java应用高效、稳定地访问和操作...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
总之,`mysql-connector-java-5.1.37-bin.jar` 是Java开发者与MySQL数据库交互的基础工具,它使得Java应用程序能够利用JDBC API无缝地连接和操作MySQL数据库。了解如何正确使用这个驱动,对于任何需要与MySQL数据库...
综上所述,这份Java基础String类选择题练习题主要覆盖了String和StringBuffer类的基础概念、基本操作方法以及它们之间的区别等内容。通过这些练习题,学习者可以更好地理解和掌握这两个类的使用方法,为实际编程工作...
Java基础是编程学习的核心部分,本总结主要涵盖了Java语言的基础概念和常见问题,适用于初学者和需要回顾基础知识的开发者。以下是对这些知识点的详细解释: 1. **基本数据类型**: - Java提供了八种基本数据类型...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
在Java基础教程中,徐培成老师的"Java基础第09天-005.String-字符集编码"主题深入探讨了这一主题,帮助初学者理解字符串(String)类与字符编码的关系。 首先,我们要知道什么是字符集。字符集是一系列用于表示文本的...
总的来说,`org.dtools.javaini-v1.1.00`为Java开发者提供了一个强大且易于使用的工具,通过源码学习,不仅可以理解其工作原理,还能为自定义扩展或优化打下基础。对于需要处理INI文件的项目,这是一个值得信赖的...
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 本视频教程帮助你从新手小白到成为精通JAVA的高手,从软件的安装,功能的介绍和使用,实战演习讲解等各大维度进行详细...
总的来说,`mysql-connector-java-5.1.41-bin.zip`是Java开发MySQL应用的基础,它的作用是提供一个桥梁,让Java应用程序能够通过JDBC API高效、稳定地与MySQL数据库进行数据交互。正确理解和使用这个驱动包,对于...
`java-query-string-builder`库提供了一种高效且灵活的方式来构建和操作这些字符串。本篇将深入探讨如何使用Java来处理HTTP查询字符串,并介绍`java-query-string-builder`库的相关功能。 1. **HTTP查询字符串基础*...
总的来说,`mysql-connector-java-5.1.9.jar`是Java开发者连接MySQL数据库的基础,了解其工作原理和使用方式对于进行数据库操作至关重要。在实际开发中,还需要根据具体需求灵活运用,确保数据的安全性和高效性。