首页 > 其他分享 >Day04-String类

Day04-String类

时间:2022-08-17 09:12:11浏览次数:44  
标签:java String System Day04 字符串 println out

String类

一.String字符串

  • 字符串是常量,创建之后不可改变
  • 字符串字面值存储在字符串池中,可以共享
  • String s = "hello",创建一个对象在字符串池当中
  • String s = new String ("hello"),创建两个对象,分别在字符串池和堆中。
String s1 = "java";
s1 = "python";
String s2 = "java";

//new String()方法
String s3 = new String("zhangsan");
String s4 = new String("zhangsan");
System.out.println(s3 == s4);//比较引用,false
System.out.println(s3.equals(s4));//比较值,true

二.String类常用方法

  • public int length(); 返回字符串长度
  • public char charAt(int index); 根据下标查找字符
  • public boolean contains(String str); 判断是否包含str
  • public char[] toCharArray(); 将字符串转换为数组
  • public int indexOf(String str); 查找str首次出现的下标,若存在则返回下标,不存在返回-1
  • public int lastIndexOf(String str); 查找字符串在当前字符串中最后一次出现的下标索引
  • public String trim(); 去掉字符串前后的空格
  • public String toUpperCase(); 将小写转换为大写
  • public String toLowerCase();将大写转换为小写
  • public boolean endsWith(String str); 判断字符串是否以str结尾
  • public boolean startsWith(String str); 判断字符串是否以str开头
  • public String replace(char oldChar,char newChar); 将字符串中的oldChar用newChar来代替
  • public String[] split(String str); 根据str做拆分
  • equals(): 比较两个字符串值是否相等
  • equalsIgnoreCase(): 不区分大小写比较值
  • compareTo(): 第一个不同的字符在字典中的位置相减,若其中一个字符串是另一个字符串的子字符串,则比较位数(位数相减)
System.out.println("-----------字符串使用1--------------");

String content = "java是世界上最好的java编程语言,java";
System.out.println(content.length());
System.out.println(content.charAt(10));
System.out.println(content.contains("java"));
System.out.println(content.contains("php"));

System.out.println("-----------字符串使用2--------------");

System.out.println(Arrays.toString(content.toCharArray()));
System.out.println(content.indexOf("java"));//查找第一个java出现的位置
System.out.println(content.indexOf("java",4));//从下标为4开始查找第一个java出现的位置
System.out.println(content.lastIndexOf("java"));//查找java最后出现的位置

System.out.println("-----------字符串使用3--------------");

String content2 = "   hello WORLD!  ";
String content3 = "hello.java";
System.out.println(content2.trim());
System.out.println(content2.toUpperCase());
System.out.println(content2.toLowerCase());
System.out.println(content3.endsWith(".java"));
System.out.println(content3.startsWith("hello"));

System.out.println("-----------字符串使用4--------------");
System.out.println( content.replace("java","php"));
String say = "java is the best programming   language,java";
String[] arr = say.split("[ ,]+");//[ ,]:根据空格和逗号来分割字符串,+:可允许多个空格或逗号一起出现
System.out.println(arr.length);
for (String str:arr) {
    System.out.println(str);
}

//补充equals(),compareTo()
System.out.println("--------补充-----------");
String n1 = "hello";
String n2 = "HELLO";
System.out.println(n1.equals(n2));//直接比较值false
System.out.println(n1.equalsIgnoreCase(n2));//不区分大小写比较值true
String n3 = "abc";//97
String n4 = "xyz";//120
System.out.println(n3.compareTo(n4));//-23 第一个不同的字符在字典中的位置相减
String n5 = "abc";
String n6 = "abcdefg";
System.out.println(n5.compareTo(n6));//-4 若其中一个字符串是另一个字符串的子字符串,则比较位数(位数相减)



//输出结果:
-----------字符串使用1--------------
24
的
true
false
-----------字符串使用2--------------
[j, a, v, a, 是, 世, 界, 上, 最, 好, 的, j, a, v, a, 编, 程, 语, 言, ,, j, a, v, a]
0
11
20
-----------字符串使用3--------------
hello WORLD!
   HELLO WORLD!  
   hello world!  
true
true
-----------字符串使用4--------------
php是世界上最好的php编程语言,php
7
java
is
the
best
programming
language
java
--------补充-----------
false
true
-23
-4

三.一个String案例

  • 需求:String str = ”this is a text“
  • 1.把str中的单词单独取出来
  • 2.把str中的text转换为practice
  • 3.在text前面插入一个easy
  • 4.把每个单词首字母转换为大写
String str = "this is a text";

System.out.println("1.把str中的单词单独取出来");
String[] str1 = str.split(" ");
for (String arr:str1) {
    System.out.println(arr);
}

System.out.println("2.把str中的text转换为practice");
String str2 = str.replace("text","practice");
System.out.println(str2);

System.out.println("3.在text前面插入一个easy");
String str3 = str.replace("text","easy text");
System.out.println(str3);

System.out.println("4.把每个单词首字母转换为大写");
for (int i = 0; i <str1.length ; i++) {
    char first = str1[i].charAt(0);//取每个字符的第一个字母
    char upperfirst = Character.toUpperCase(first);//把每个字符的第一个字母转换为大写
    String str4 = upperfirst + str1[i].substring(1);//拼接 substring(beginindex):从下标beginindex处开始截取字符串
    System.out.println(str4);
    
//输出结果:
1.把str中的单词单独取出来
this
is
a
text
2.把str中的text转换为practice
this is a practice
3.在text前面插入一个easy
this is a easy text
4.把每个单词首字母转换为大写
This
Is
A
Text 

四.StringBuffer和StringBuilder(可变长字符串)

  • StringBuffer:可变长字符串,jdk1.0提供,运行效率慢,线程安全
  • StringBuilder:可变长字符串,jdk5.0提供,运行效率快,线程不安全
       //StringBuffer sb = new StringBuffer();
        StringBuilder sb = new StringBuilder();//同样适用
        //1.添加:append()
        sb.append("java世界第一 ");
        System.out.println(sb.toString());
        sb.append("java好 ");
        System.out.println(sb.toString());

        //2.插入:insert()
        sb.insert(0,"我在前面 ");//从下标索引为0的位置开始添加
        System.out.println(sb.toString());

        //3.替换:replace()
        sb.replace(0,5,"hello");//把下标为0-4(含头不含尾)的字符替换为hello
        System.out.println(sb.toString());

        //4.删除:delete()
        sb.delete(0,5);
        System.out.println(sb.toString());
        //清空
        sb.delete(0,sb.length());
        System.out.println(sb.toString());

//输出结果:
java世界第一 
java世界第一 java好 
我在前面 java世界第一 java好 
hellojava世界第一 java好 
java世界第一 java好
System.out.println("-----String效率------");
//开始时间
long start = System.currentTimeMillis();
String str = new String();
for (int i = 0; i <9999 ; i++) {
    str += i;
}
//结束时间
long end = System.currentTimeMillis();
System.out.println("用时为:" + (end - start));

System.out.println("-----StringBuilder效率------");
 //开始时间
long start2 = System.currentTimeMillis();
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i <9999 ; i++) {
     sb2.append(i);
     }
//结束时间
long end2 = System.currentTimeMillis();
System.out.println("用时为:" + (end2 - start2));

//输出结果:
-----String效率------
313
-----StringBuilder效率------   
0

标签:java,String,System,Day04,字符串,println,out
From: https://www.cnblogs.com/workplace-blog/p/16593715.html

相关文章

  • Day04-BigDecimal等类
    BigDecimal类一.使用场景float和double类型的值存储方式为近似存储,在某些精度要求高的行业需要精确存储数据,则需要使用BigDecimal类二.BigDecimal类介绍位置:java.ma......
  • Map<Integer,Value>放入缓存后取出来变成了Map<String,Value>
    背景将一个类型为Map<Integer,String>的一个Map对象放到redis中后,再次取出来时。当我们想便利Map.entrySet()获取每个Entry中的Key,如执行Integerkey=entry.getKey();......
  • 常用类--String
    一、String1.1String是不可变对象String的底层是一个char类型字符数组String类是final修饰的,不能被继承,不能改变,但引用可以重新赋值String采用的编码方式是Unicode......
  • String在内存中如何分布
    一、设计思想及原理设计思想1、字符串分配和其他的对象分配一样,耗费高昂的时间与空间代价,作为最基础的数据类型,大量频繁的创建字符串,极大程度地影响程序的性能。2、JVM......
  • AGC058D Yet Another ABC String
    link由于限制是循环的考虑用连续段容斥。直接容斥的做法是枚举一组限制,并带上\((-1)^c\)的系数:某些相邻的三个数必须\(\in123,231,312\),相交的限制会互相影响得到连......
  • 1047.remove-all-adjacent-duplicates-in-string 删除字符串中所有相邻重复项
    利用stack(栈)这一数据结构,当前字符与栈顶字符相等时,pop(),最后把栈中的字符还原成字符串,注意栈是LIFO的,因此还原字符串时要注意顺序。#include<stack>#include<string>......
  • Redis常用指令之string、list、set、zset、hash
    Redis之五大类型常用指令redis的一些小知识redis服务器端口默认是6379在编译完成后的bin目录下启动服务端:redis-server客户端连接操作:redis-cli-hlocalhost-p......
  • String _split()
    S.split(s)表示将字符串S按照s截开,对于空白字符Stringstr="abcd";String[]arr1=str.split("");//仅分割一个空格String[]arr2=str.split("s");Strin......
  • std::string assign
    参考std::string#include<iostream>#include<string>usingnamespacestd;intmain(){stringstr;stringbase="Thequickbrownfoxjumpsoveralazy......
  • Blob转字符串(Blob to string)
    方法1://data:指待读取blob数据letreader=newFileReader();reader.onload=event=>{//读取之后进行操作的代码区域,event.currentTarget.re......