1.String:

1.面试题:

/*String s = new String("hello");问:如上语句创建了几个对象?答:2个第一个:字面量"hello"---java会创建一个String对象表示字面量"hello",并将其存入常量池第二个:new String()---new String()时会再创建一个字符串对象,并引用hello字符串的内容*/
String s = new String("hello");
String s1 = "hello";
System.out.println("s:"+s);   //hello
System.out.println("s1:"+s1); //hello
System.out.println(s==s1); //false,==比较的是地址是否相同//字符串实际开发中比较相等一般都是比较字符串的内容
//因此我们需要使用equals()方法来比较两个字符串的内容
System.out.println(s.equals(s1)); //equals()比较的是内容是否相同

2.String常用方法:

1.length():获取字符串的长度(字符个数)

 String str = "我爱Java!";int len = str.length(); //获取str的长度System.out.println(len); //7

2.trim():去除当前字符串两边的空白字符

 String str = "  hello world            ";System.out.println(str); //  hello worldstr = str.trim(); //去除当前字符串两边的空白字符System.out.println(str); //hello world

3.toUpperCase()和toLowerCase():将当前字符串中的英文部分转为全大写/全小写

 String str = "我爱Java!";String upper = str.toUpperCase(); //将str中英文部分转为全大写System.out.println(upper); //我爱JAVA!String lower = str.toLowerCase(); //将str中英文部分转为全小写System.out.println(lower); //我爱java!

4.startsWith(String str)和endsWith(String str):判断当前字符串是否是以给定的字符串开始/

结尾的

 String str = "thinking in java";boolean starts = str.startsWith("think"); //判断str是否是以think开头的System.out.println("starts:"+starts); //trueboolean ends = str.endsWith(".png"); //判断str是否是以.png结尾的System.out.println("ends:"+ends); //false

5.charAt():返回当前字符串指定位置上的字符

 //            0123456789012345String str = "thinking in java";char c = str.charAt(9); //获取位置9所对应的字符System.out.println(c); //i

6.indexOf()和lastIndexOf():检索给顶字符串在当前字符串中的开始位置

//                      111111
//            0123456789012345
String str = "thinking in java";
int index = str.indexOf("in"); //检索in在字符串str中的开始位置
System.out.println(index); //2index = str.indexOf("in",3); //从下标为3的位置开始找in第一次出现的位置
System.out.println(index); //5index = str.indexOf("IN"); //当前字符串不包含IN,所以返回-1
System.out.println(index); //-1index = str.lastIndexOf("in"); //找in最后一次出现的位置
System.out.println(index); //9

7.substring():截取当前字符串中指定范围内的字符串

 //                      1
//            01234567890
String str = "www.tedu.cn";
String name = str.substring(4,8); //截到下标4到7范围的字符串
System.out.println(name); //teduname = str.substring(4); //从下标4开始一直截到末尾
System.out.println(name); //tedu.cn

8.String的静态方法valueOf():将其它数据类型转换为String

int a = 123;
String s1 = String.valueOf(a); //将int型变量a转换为String类型并赋值给s1
System.out.println(s1); //123---字符串类型double d = 123.456;
String s2 = String.valueOf(d); //将double型变量d转换为String类型并赋值给s2
System.out.println(s2); //123.456----字符串类型String s3 = a+""; //任何内容和字符串连接的结果都是字符串,效率低(下节课讲)
System.out.println(s3); //123---字符串类型

3.StringBuilder类:

1.由于String是不变对象,每次修改内容要创建新对象,因此String不合适做频繁修改操作,

为了解决这个问题,java提供了StringBuilder类。

2.StringBuilder是专门用于修改字符串的一个API,内部维护一个可变得char数组,修改都是

在这个数组上进行的,修改速度、性能优秀,并且提供了修改字符串的常见的方法:增、

删、改、插

//String不适合频繁修改内容
String s = "a";
for(int i=0;i<10000000;i++){s = s+i;
}
System.out.println("执行完毕");//用StringBuilder可以提高修改字符串的性能
StringBuilder builder = new StringBuilder("a");
for(int i=0;i<10000000;i++){builder.append(i);
}
System.out.println("执行完毕");

4.StringBuilder常用方法:

1.append():追加内容

2.replace():替换部分内容

3.delete():删除部分内容

4.insert():插入内容

5.reverse():翻转内容

String str = "好好学习java";
//复制str中的内容到builder中-----好好学习java
StringBuilder builder = new StringBuilder(str);//append():追加内容
builder.append(",为了找个好工作!");
System.out.println(builder); //好好学习java,为了找个好工作!//replace():替换部分内容
builder.replace(9,16,"就是为了改变世界"); //替换下标9到15的
System.out.println(builder); //好好学习java,就是为了改变世界!//delete():删除部分内容
builder.delete(0,8); //删除下标0到7的
System.out.println(builder); //,就是为了改变世界!//insert():插入操作
builder.insert(0,"活着"); //从下标0的位置插入
System.out.println(builder); //活着,就是为了改变世界!//reverse():翻转
builder.reverse(); //翻转内容
System.out.println(builder); //!界世变改了为是就,着活

补充:

1.StringBuilder和StringBuffer:

1.StringBuffer:是线程安全的,同步处理的,性能稍慢

2.StringBuilder:非线程安全的,并发处理的,性能稍快

2.getter/setter:

class Point{ //点private int x;private int y;public int getX(){ //getter获取值return x;}public void setX(int x){ //setter设置值this.x = x;}public int getY(){return y;}public void setY(int y){this.y = y;}
}//getter和setter的演示
public class GetterSetterDemo {public static void main(String[] args) {Point p = new Point();p.setX(100); //赋值p.setY(200); //赋值System.out.println(p.getX()+","+p.getY()); //取值}
}

String.....相关推荐

  1. Java知识——精华总结

    Java知识--精华总结 一.java概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 为了使计算机能够理解人的意图,人类就必须 ...

  2. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  3. Go 学习笔记(60)— Go 第三方库之 go-redis(初始化 redis、操作 string、操作 list、操作 set、操作 hset)

    1. 第三方库 go-redis 因为 Go 标准库中是没提供 redis 的库,所以我们选择用 go-redis 这个第三方库.源码地址为 https://github.com/go-redis/r ...

  4. Redis 笔记(03)— string类型(设置key、获取key、设置过期时间、批量设置获取key、对key进行加减、对key值进行追加、获取value子串)

    字符串 string 是 Redis 最简单的数据结构.Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据.不同类型的数据结构的 ...

  5. python中的raw string的使用

    背景 我们经常需要使用raw string,在应用过程中,比如要使字符串中带一些转义字符或者其他的一些符号,我们就需要保持我们的字符成为raw string. 实例 输入 s = 'fadfafa\n ...

  6. Java中如何实现Date与String之间的数据类型转换

    String 数据类型转换成 Date String inputDate = "2021-04-11";Date outputDate = null;SimpleDateForma ...

  7. C++ string字符串的比较是否相等

    C++ string字符串的比较是否相等 可以使用compare 也可以使用"==" 1 使用比较运算符 == #include <iostream> #include ...

  8. python string 转bytes 以及bytes 转string

    string转 bytes 使用 encode str_a = "Python" str_bytes = str_a.encode() # encode默认编码方式是utf-8 所 ...

  9. TypeError: string argument without an encoding

    这个错误是把string 类型转byte类型的时候出现的问题 下面就会报错 print(bytes(str_a)) 修改为如下就好了 print(bytes(str_a.encode())) 或者就不 ...

  10. TypeError: ord() expected string of length 1, but int found

    错误如下 ord 里面要求的是一个string 的字符, 这里使用了int  ,所以修改了print(ord("1")) 转ASCII 的时候需要注意了,

最新文章

  1. 2021科大讯飞-车辆贷款违约预测赛事 Top1方案!
  2. Angular7教程-06-页面与数据交互
  3. linux网络编程常用函数详解与实例(socket--bind--listen--accept)
  4. java object 引用类型_java中的四种引用类型
  5. 《大道至简》第四章内容总结
  6. 记一次程序员在办公室里的“撕逼”经历
  7. RUNOOB python练习题3
  8. S3C2440 lds链接脚本解析
  9. java f.lenth返回值_long length
  10. [10] ADB 修改设置
  11. Spring Boot 介绍、入门
  12. qt设置 阿里巴巴普惠体 英文_怎样把免费的阿里巴巴普惠字体设置为Office全家桶软件主题字体?...
  13. oracler日期函数相差六个月_oracle中计算两个日期的相差天数、月数、年数、小时数、分钟数、秒数等...
  14. linux下二进制包、源代码包、rpm包
  15. Maven图文闪电入门
  16. 互联网寒冬下,为什么就你被裁了?
  17. python随机生成电话号码
  18. 已解决:ubuntu-软件更新处无nvidia驱动/ubuntu检测不到扩展屏幕
  19. 40年间,“国货”如何崛起
  20. 最全的Windows10强制永久关闭自动更新方法!

热门文章

  1. UDK初学教程 02: Kismet
  2. LastPass 开发者系统被黑客窃取源代码
  3. linux格式化gat分区,Linux 下使用udev永久绑定带库设备方法
  4. 纯软件公司的先驱 甲骨文公司(一)——硅谷老兵新传
  5. 我的新书《Android App开发入门与实战》已经出版
  6. android论坛功能开发教程,Android教程 如何免费生成论坛App
  7. 遍历properties的方法
  8. .wang是国际域名吗
  9. DNS原理与手撸域名之自己解析域名
  10. 超神学院基因计算机,《超神学院》超级基因的起源