从零开始学习JAVA---6

String的操作

基础操作,后续在面向对象章节细讲
String 类的构造方法很多。可以通过初始化一个字符串,或者字符数组,或者字节数组等等来创建一个String 对象

常见方法

  • length()
  • substring(int)/(int,int)
  • charAt(int index):char
  • indexOf(int ch) indexOf(int ch, int fromIndex) 方法
  • equals(String):boolean比较两个字符串的内容是否相等
  •  split(String regex)

常见方法:intern() 方法  

String s1="ab"+"c"; 
String s2="abc"; 
System.out.println(s1==s2); //true

  字符串常量拼接,在方法区的常量池中完成

String s0="ab"; 
String s1=s0+"c"; 
String s2="abc"; 
System.out.println(s1==s2); //false
String 类型的拼接是通过 StringBuilder 类中的 append 方法实现的,然后返回 toString 的结果。是在堆中的新对象

字符串转数字 

使用Scanner读取键盘录入数据  

  • next():String 当光标扫描到第一个分隔符(默认是空格)停止扫描,会创建一个String类的对象,里面存储的就是扫描的内容(不包含空格分隔符)返回创建的String对象的引用给n
Scanner cin=new Scanner(System.in); 
while (true) { 
    String n = cin.next(); 
    if("exit".equals(n)) 
        break; 
    System.out.println(n + 'A'); 
}
cin.close();
  • nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行。所以它和next()的区别就是它没有分隔符,直接扫描全部的键盘输入内容,并创建对象进行将其引用返回
  • 目标类型名.parse类型(String)
  1. Integer.parsetInt(String):int
  2. Double.parsetDouble(String):double 

数字转字符串

""+ 任意类型数据

字符串新方法

  • String.repeat(int) 根据 int 参数的值重复 String
  • String.lines() 拆分由其行终止符在其上调用的 String ,并返回由这些行终止符划分的Strings Stream 。具体使用以后再说
  • String.strip() String.stripLeading() String.stripTrailing() 去除字符串的空格
  • String.isBlank() 判断String是否为空或仅包含空格字符

具体实现原理

JDK1.8 以前采用 char[] 实现,现在采用 byte[] 的方式实现。可以减少字符串占用的内存,同时减少垃圾回收次数。
实际开发中单字节的字符使用频率远高于双字节的。在 JDK8+ 版本中 Java 会根据字符串内容自动设置为相应的编码,要么 Latin-1 要么 UTF16 ,中文是两个字节,纯英文是一个字节。
不使用 UTF-8 编码字符集是因为 UTF-8 是变长编码的,有 1 2 3 4 字节的不同情况,所以对于 String 随机访问操作很不方便
UTF-16 也是变长编码,是使用 2 或者 4 个字节存储字符。对于 Unicode 编码在 0-FFFF 之间的字符使用两个字节存储,而 10000-10FFFF 之间的字符使用 4 个字节。但是 Java 中一个 char 就是 2 个字节,同时 String 各种操作都是以 Java 字符为单位的,所以 UTF-16 Java 中可以看作一个定长的编码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值