黑马程序员_String类和StringBuffer类

------- android培训java培训、期待与您交流! ----------

一、String类封装了大量的关于String操作的各种信息:比较两个字符串、查找和抽取串中的字符或子串、字符串与其它类型之间的相互转换等,由于string在编程过程中的使用频率较高,使得有关String的基本操作和常用的方法,变得尤为重要,在实际应用中要达到不假思索,就可以信手拈来的程度,来满足实际开发应用的需求。
1)获取:
   1.1      int length()//获取字符串的长度,注意:和数组的长度属性的区别,数组的length是属性,没有小括号。
1.2   char charAt(int  index)//获取在指定角标位置处的字符。
1.3    int  indexOf(int  ch)//返回ch在字符串中第一次出现的位置。
1,4     int  indexOf(int  ch,int  fromIndex)//从fromIndex指定位置开始,返回ch在字符串中第一次出现的位置。
1.5      int indexOf(String str)//返回字符串str在字符串中第一次出现的位置。
1.6     int indexOf(String  str,int   fromIndex)//从fromIndex指定位置开始查找,获取str在字符串中出现的位置。
1.7     int   lastIndexOf(int   ch)//从右边开始查找ch在字符串中第一次出现的位置。
2)判断:
2.1    boolean  startsWith(str)//判断字符串 是否是一指定内容开头。
2.2    boolean   endsWith(str)//判断字符串是否是以指定内容结束。
2.3   boolean   isEmpty()//判断字符串内容是否是 空。
2.4   boolean  contains(str)//判断字符串中是否包含一个字串str。
特殊之处:indexOf(str)可以索引str在字符串中第一次出现的角标,如果返回-1,则表示str不存在字符串中。所以,此方法,也可用于判断一个字符串中是否包含另一个字串。
2.5  boolean  equals(str)//复写Object中的equals()方法,判断字符串的内容是否相同。
2.6   boolean  equalsIgnorcase()//忽略大小写的情况下,判断字符串内容是否相同。
2.7  String  concat(String   str)//将str连接到字符串的末尾。
3)转换:
3.1   将字符数组转换成字符串:
String(char[]   arr)//构造函数的方式。
String(char[]   arr,offset, count)//将数组中的一部分转换成字符串。
Static  String   copyValueOf(char[]   arr);
Static   String  copyValueOf(char[]  arr,int  offset,int  counts)
Static   String  valueOf(char[]  arr)
3.2 将字符串转换成字符数组:
char[]   toCharArray()//字符串和字节数组在装换过程中是可以指定编码表的
3,3将字节数组转换成字符串:
String  (byte[]  b)
String (byte[]  b,int  offset, int   counts)
3.4将字符串转换成字节数组:
byte[]   getBytes()
3.5将基本数据类型装换成字符串:
Static   String  valueOf(基本数据类型)
//3+"  "和String,valueOf(3)//效果是一样的
3.6  替换:
String  replace(oldChar,new Char)//如果要替换的字符串不存在,返回的还是原字符串。
String   replace(charSequence  target,charSequence  replacement)//使用指定的字面值序列替换字符串所有匹配字面值目标序列的字符串。
3.7  切割:
String[]  split(regex)
3.8获取字串:
String  subString(begin)//从指定位置开始到末尾的子字符串。
String  subString (begin,end)//从指定位置开始到指定位置结束 的子字符串,其中包含头,不包含尾。
3.8将字符串装换成大写或者小写:
string  toUpperCase();
String toLowerCase();
4)去除字符串两端多余的空格:
String  trim()
5)将两个字符串进行自然顺序的比较:
int  compareTo(String);
二、String的最大特点:一旦被初始化,就不能再改变
String s1="abc";//s1在内存中有一个对象;
String s2=new String("abc");//s2在内存中有两个对象,s1!=s2,但,s1.equals(s2)返回true;它们两个字符串的内容是相同的;
三、1)StringBuffer:是一个字符串的缓冲区,是一个容器。
2)特点:长度是可以变化的;
可以操作多种数据类型;
最终会通过toString形式转换成字符串。
3)StringBuffer类也封装了有关操作数据的增、删、改、查的方法:
4)存储:
StringBuffer  append()//将制定数据作为参数添加到已有数据的末尾。
StringBuffer  insert(index  ,date)将数据添加到指定角标处。
注意:在实际开发中,如果需要频繁的改变字符串的内容,就需要考虑到StringBuffer类的实现,它 性能比string要高;
例如:
String x="a“+4+"c";在编译时等效于:
String x=new StringBuffer().append("a").append("4).appeed("c").toString();
5)删除:
StringBuffer  delete(start,end)
StringBuffer  deleteCharAt(int index)
6)清空缓冲区:
StringBuffer  sb=new StringBuffer("abcd");
//sb=new StringBuffer()又重新创建了一个新的缓冲区,不建议用这种方法。
sb.delete(0,sb.length())//这种方法是建议提倡使用的;
7)获取:与String的方法大同小异;
8)修改:
StringBuffer  replace(start,end,String)
void  setCharAt(int  index,char  char)
9)反转:
StringBuffer  reverse();
四、JDK1.5版本后出现了StringBuilder,与StringBuffer的区别:StringBuilder是线程不同步的,效率稍高;而StringBuffer是线程同步的,效率相对较低。
 ------- android培训java培训、期待与您交流! ----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《Java程序设计》课程实验指导书程序代码(答案)(实验二),个人原创,仅供参考与交流。 希望多多交流,共同进步! 实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。(闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.编写Java Appet 程序打印 “水仙花” 数 (它的个、十、百位数字的立方的和等于该数本身,如:153=1^3+5^3+3^3) 3. 编写Java Application程序,分别用do-while和for循环计算1+1/2!+1/3!+1/4!...的前20项和 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成示,并给出解决办法。 四、实验步骤: 1.编写主; 2.在static public void main(String[ ] args)方法中加入实现要求功能的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)编写Java Applet, 在public void paint(Graphics g)方法中加入实现要求功能的代码, 主要步骤是:从100到1000循环,判断每个数是否符合水仙花数的特点,是则输出之。 3.编译运行程序,观察输出结果是否正确。 五、自做实验 1. 输出100以内的所有素数。 提示: 逐个判断小于a的每个正整数x,第二重循环针对x,判断其是否是质数。 2.将所输入之正整数,以二、八、十六进制表示出来。 提示: 可写三个方法分别计算输出二、八、十六进制表示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值