黑马程序员_字符串

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


字符串处理,非常重要,使用频率相当的高
java中,字符串是一个对象,java.lang.String类,描述字符串对象的


1. 创建字符串
  String str = "abc";
  String s = new String("abc");


2. 字符串的特点:
  在java中,字符串是双引号引起来,字符串对象,凡是双引号引起来的,字符串对象
  字符串是一个常量,(一旦被创建,就不会被改变)
  字符串存储在内存的什么地方? 方法区,常量池,单个字符 'a''b''c'


3. 面试题,参照StringDemo.java中的程序


4. String类的构造方法
  |-- String(byte[] bytes) 将字节数组转成字符串
  |-- String(byte[] bytes, int offset, int length) offse开始索引 length个数
  |-- String(char[] value) 
  |-- String(char[] value, int offset, int count) 


5. String类的判断方法
  |-- boolean equals(Object obj) 比较字符串的内容是否相等
  |-- boolean contains(String s) 判断一个字符串是否包含另一个字符串
  |-- boolean startsWith(String) 判断一个字符串是否以另一个字符串开头
  |-- boolean endsWith(String) 判断一个字符串是否以另一个字符串结尾
  |-- boolean isEmpty()判断一个字符串是否有内容


6. String类的获取方法
  |-- char chatAt(int index),指定索引,返回这个索引上的字符
  |-- int indexOf(char c)返回字符在此字符串中第一个出现的索引
  |-- int indexOf(char c ,int fromIndex)返回字符在此字符串中第一个出现的索引,从指定索引开始查找
  |-- int indexOf(String s)返回字符串在此字符串中第一个出现的索引
  |-- int indexOf(String s ,int fromIndex)返回字符串在此字符串中第一个出现的索引,从指定索引开始查找
  |-- int lastIndexOf(char c) 反向索引
  |-- String substring(int start ,int end)获取字符串中的一部分 包含头,不包含尾
         
7. String类的转换方法
  |-- char[] toCharArray()将字符串转成字符数组
  |-- byte[] getBytes()将字符串转成字节数组
  |-- String toUpperCase()将字符串转成大写
  |-- String toLowerCase()将字符串转成小写
  |-- static String valueOf


8. String类其它方法
  |-- String[] split()切割字符串
  |-- String replace(old char ,new char)替换字符串
  |-- String trim()去掉字符串两端的空格


9. String类型的案例
  |-- 定一个字符串sdfghxcnm,请你按照字母的字典顺序排序
  |-- 允许使用toCharArray方法
  |-- 让用户使用的时候,调用一个方法  String s = stringSort(s);
  功能实现步骤:
   1. 将字符串转成字符数组  toCharArray
   2. 对数组排序
   3. 将排序后数组,转成字符串


  |-- 模拟equals方法
  |-- 将一个字符串中的大写转成小写,小写转成大写
       aBCdefGh  AbcDEFgH
  |-- 判断一个字符串是否是回文
      abcba  12321
package cn.itcast.string;


public class StringTest {
public static void main(String[] args) {
System.out.println(6>>400);
boolean b = myEquals("a啊", "a啊");
System.out.println(b);

String s = toUpperToLower("ss");
System.out.println(s);
}
//定义功能,实现字母的大小写互换
public static String toUpperToLower(String s){
//健壮性判断
if( s == null)// s==null
throw new RuntimeException("数据非法");
if( "".equals(s))
return s;
//将字符串转成字符数组
char[] ch = s.toCharArray();
//定义新的字符数组,保存转大小写后的字符
//char[] temp = new char[s.length()];
//遍历数组
for(int x = 0 ; x < ch.length ; x++){
//将单个字符进行大写小写的判断
if(ch[x]>=65 && ch[x]<=90){
//是一个大写字母,+32转成字符,存到新数组
ch[x] = (char)(ch[x]+32); 
}else if(ch[x]>=97 && ch[x]<=122){
//是一个小写字母,-32转成字符,存到新数组
ch[x] = (char)(ch[x]-32);
}
}
//将存储的新数组。转成字符串并返回
return new String(ch);
}






//定义方法,实现比较2个字符串,如果全等返回真

public static boolean myEquals(String s1 , String s2){
//对传递的字符串进行健壮性判断
if(s1==null || s2 == null)
//抛出异常,数据传递非法,让程序停下来
throw new RuntimeException("数据非法");
//对字符串的长度进行判定
if(s1.length() != s2.length())
return false;
//转成字符数组
char[] ch1 = s1.toCharArray();
char[] ch2 = s2.toCharArray();
//遍历数组
for(int x = 0 ; x < ch1.length ; x++){
//对字符数组中的每一个元素进行比较
if(ch1[x] != ch2[x])
return false;
}
//遍历完毕,没有返现不相等的字符,返回true
return true;
}
}


































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值