黑马程序员——String类笔记

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

Scanner类:

一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,它是final修饰的不能继承,默认使用空格,回车作为分割符

public static void main(String[] args) {

      Scanner sc=new Scanner(System.in);

      if(sc.hasNextInt()){

         int i=sc.nextInt();

         System.out.println(i);

      }else{

      System.out.println("输入类型错误");

      }

   }

下面这个程序会产生问题

public static void main(String[] args){

      Scanner sc=new Scanner(System.in);

      System.out.println("请输入第一个数");

      int i =sc.nextInt();

      System.out.println("请输入第二个字符串");

      String s=sc.nextLine();

      System.out.println("i="+i+",s="+s);

   }

nextLine遇到\r\n就会结束,当我们按回车,就会输入\r\n,所以上面的程序第二个数不能输入,所以我们以后可以少用nextInt,多用nextline

 

String 类

1.  String类也是final 的,所以一旦被创建,那么值就不能更改,

2.      而且“abd”这些都是它的实例

String str="abc";

System.out.println(str);

打印对象引用的时候,默认调用toString方法,toString方法返回对象本身,而不是hashcode值

String str="abc";

      str="def";

      System.out.println(str);

这边的对象“abc”没有改变,对象“def   ”的引用赋值给Str,它是一个变量,装的地址值,这里面就有两个对象,只不过,“abc已经变成垃圾了”,一旦初始化,abc就不能改变了

String的构造方法

byte[] b={97,98,99};

      String s=new String(b);这是一个解码的过程

      System.out.println(s);
String类中有空构造,也有传参构造,参数可以是byte,char数组等,这样来创建字符串实例

如果常量池里面有值,那么就不创建新的,如果没有就创建新的字符串,下面程序为TRUE

String s1="abc";

      String s2="abc";

      System.out.println(s1=s2);

String s=new String("abc");创建了几个对象.答案是2个,一个abc在方法区,另一个在堆内存

String类判断:

equals比较字符串内容是否相同

String s1="heima";

      String s2="heima";

      String s3="HeiMa";

      System.out.println(s1.equals(s2));

      System.out.println(s1.equals(s3));区分大小写

      System.out.println(s1.equalsIgnoreCase(s3));不区分大小写

contains包含

String s1="我爱heima哈哈";

      String s2="heima";

      String s3="baima";

      System.out.println(s1.contains(s2));结果为true

      System.out.println(s1.contains(s3));结果为false

startswith判断是否以传入的字符串开头,endswith以传入的字符串结尾isEmpty是否为空

“”和null的区别,空串是一个String类对象,是一个字符串常量,可以调用方法

null是空常量,不能调用方法,否则要报空指针异常,null可以给任意的引用类型赋值

 

String类的获取方法:

int length()获取字符串长度,获取字符的个数

char charAt(int index)获取指定索引位置的字符

int charAt(int ch)返回指定字符在此字符串中第一次出现处的索引

int charAt(String str)返回指定字符串在此字符串中第一次出现处的索引

int charAt(int ch,int fromIndex)返回指定字符在此字符串中从指定位置第一次出现处的索引

int charAt(String str,int fromIndex)返回指定字符串在此字符串中从指定位置第一次出现处的索引

int indexOf()返回索引值

lastIndextOf()从后向前找

String substring(int start)从指定位置开始截取字符串,默认到结尾

String substring(int start ,int end)从指定位置开始,到指定位置结束,截取字符串左闭右开

 

字符串的遍历:

String s="heima";

      for(int i=0;i<s.length();i++){

         charc=s.charAt(i);

         System.out.println(c);

      }

String类的转换:

new String (byte[] b)解码,字节变字符串

getBytes(),转换为字节数组

toCharArray(),转换为字符数组

valueOf(char[] c)转为字符串

valueOf(int i)把整形转换为字符串

valueOf可以将任意类型转换为字符串

把对象Object转换成String 相当于调用toString方法

toLowerCase转换成小写

toUpperCase转换为大写

concat把字符串拼接,用+号也可以,而且更加强大,可以与任意类型拼接

 

String类的其它功能:

String replace(char old,char new)替换

String replace(String old,String new)

String trim()去除两端的空格,在做注册用户登录的时候可以用

int compareTo(String str)字符串的比较,按照字典顺序比较,码表值的比较,第一个相同就比较第二个,如果长度不一样就比较长度,返回长度的差值

int compareToIgnoreCase(String str)

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值