首页 > 其他分享 >String

String

时间:2024-03-10 21:55:06浏览次数:27  
标签:abc String s2 s1 字符串 public

String类的特点

1. Java程序中, 所有双引号字符串, 都是String这个类的对象
       - String类, 多了一种创建对象的方式
   
  String s1 = new String();
String s2 = "abc";
   
   
2. String字符串, 一旦被创建, 就[不可改变]
       - 不可改变: 字符串内容不能改变, 要想做修改, 只能使用新的对象做替换.

           String s = "abc";
           s = "def";
           System.out.println(s); // def

3. 字符串虽然不可改变, 但是其内容可以被共享

       - 字符串常量池 (StringTable): 当使用双引号创建字符串对象的时候, 会检查常量池中是否存在该数据
                       没有 : 创建
                       有 : 复用
                           
                           String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);  // true

4. 字符串和字符数组之间允许相互转换

           char[] chs = {'a','b','c'};     <----------->    String s = "abc";

1. 字符串数组转换字符串
               
               String s = new String(chs);

2. 字符串拆分为字符数组
               
               char[] chs = s.toCharArray();

String类常见的构造方法

1. public String() : 创建一个空白的字符串对象
2. public String(char[] chs) : 根据传入的字符数组, 来创建字符串对象
3. public String(String s) : 根据传入的字符串, 来创建字符串对象

细节: 打印字符串对象, 为什么没有地址值?
     - TODO: 就业班 (继承, 方法重写, Object, toString())
     - 请先暂时记住, 打印字符串对象名, 直接展示内容, 并非地址值.

想法: 这三种创建方式, 都没有双引号直接创建, 来的方便

       String s = "abc";

创建字符串对象, 两种方式的区别

  • 双引号直接创建 : 在字符串常量池中维护

  • 通过构造方法 new 出来 : 在堆内存中有自己独立的内存地址

字符串面试题

package com.itheima.test;

public class StringTest1 {
   /*
       String常见面试题 (看程序, 说结果, 并说明原因)
    */
   public static void main(String[] args) {
       String s1 = "abc";
       String s2 = "a" + "b" + "c";

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

  }

   private static void method3() {
       String s1 = "abc";
       String s2 = "ab";
       String s3 = s2 + "c";

       System.out.println(s1 == s3);
  }

   private static void method2() {
       String s1 = "abc";
       String s2 = new String("abc");

       System.out.println(s1 == s2);
  }

   private static void method1() {
       String s1 = "abc";
       String s2 = "abc";

       System.out.println(s1 == s2);
  }
}

String类成员方法

  • 字符串中用于比较的方法 :

public boolean equals(String anObject) : 字符串之间进行内容的比较, 返回true, false
public boolean equalsIgnoreCase(String anotherString) : 字符串之间进行内容的比较, 返回true, false (不考虑大小写)
  • 字符串转字符数组的方法 :

public char[] toCharArray() : 将此字符串转换为一个新的字符数组
  • 字符串用于遍历方法 :

public char charAt(int index) : 根据索引找字符
public int length() : 返回字符串的长度(字符的个数)
  • 字符串用于截取方法 :

public String substring(int beginIndex) : 根据传入的索引, 截取字符串, 截取到字符串的末尾, 返回新的字符串
public String substring(int beginIndex, int endIndex) :
根据传入的开始和结束索引, 截取字符串 (包含头, 不包含尾), 返回新的字符串
  • 字符串用于替换方法 :

public String replace(String target, String replacement)  :

                           参数1: 旧值
                           参数2: 新值
  • 字符串用于切割的方法 :

public String[] split(String regex) : 根据传入的字符串作为规则, 切割当前字符串, 并返回字符串数组.

           注意: 指定切割规则的时候, 如果没有按照预想的切割出数据
                   可以在规则前面, 加入 \\

标签:abc,String,s2,s1,字符串,public
From: https://www.cnblogs.com/linzel/p/18064957

相关文章

  • abc344_D - String Bags 题解
    一个月没有碰oi,感觉水平已经退化到负的了。来复健一下。D-StringBagslink题意:给你\(n\)组字符串组,按\(1\)~\(n\)的顺序,对于每组字符串组,可从中至多选一个字符串。求能否用所选串按顺序拼接成指定串,以及选取字符串的最小个数。然后读完题发现是个\(01\)背包;对于第......
  • 7-10 英文单词排序(string类型的长度表示方法)
    7-10英文单词排序分数15作者张泳单位浙大城市学院本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。输入格式:输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的......
  • java List<HashMap<String,Object>> 遍历修改
    List<HashMap<String,Object>>DataSource;inti=0;for(Map<String,Object>item:DataSource){for(Stringk:item.keySet()){if(k.equals("input_date")){//此句为判断条件可去掉Objectb=item.get(k);......
  • C++STL学习第一篇(什么是STL以及string的各种功能用法)
    STLSTL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器、空间配置器。数据结构和容器管理:STL提供了多种数据结构和容器,如向量(vector)、链表(list)、集合(set)、映射(map)等。这些容器可以帮助程序员方便地存储和管理数据,根据需求进行动态调......
  • spring - string
    spring-string1.string在Java8及之前的版本中,字符串由不可变的Unicode字符数组组成。然而,大多数字符只需要8位(1个字节)来表示它们,而不是16位(字符大小)。为了改善内存消耗和性能,Java9引入了紧凑字符串。这意味着如果字符串仅包含1字节字符,它将使用Latin-1编码表示......
  • JAVA API:String String使用注意事项
    包:分门别类程序的工具,类似文件夹  JAVAlang包下不需要导包的。   String:     String常用方法:          String注意事项:              ......
  • day03_homework_string切害与while循环
    有变量name="aleXleNb"完成如下操作:name="aleXleNb"移除name变量对应的值两边的空格,并输出处理结果print(name.strip())判断name变量是否以"al"开头,并输出结果(用切片)ifname[0:2:1]in'al':print(name[0:2:1])判断name变量是否以"Nb"结尾,并输出结果(用切......
  • CF163A Substring and Subsequence 题解
    分析考虑DP。定义状态函数$f_{i,j}$表示在$s[1\dotsi]$中选一个子串$a$,在$t[1\dotsj]$中选一个子序列$b$,且$s_i,t_j$必选时$a=b$的方案数。则有两种情况:$s_i\net_j$。此时$a$和$b$是不可能相同的了,所以$f_{i,j}=0$。$s_i=t_j$。在只选$s_i,t_j$时......
  • AT_abc343_G [ABC343G] Compress Strings 题解
    分析水题,评分能有$2100$可能是因为很多人卡E了。我说真的,E好难啊。$n$只有$20$,考虑从状压的角度入手。定义状态函数$f_{s,i}$表示当某个字符串$T$包含了所有$s$的二进制中为$1$的下标$S_j$且$T$末尾包含的子串为$S_i$时$T$的最小长度。那很显然的就有转......
  • 11_C# 中字符串 string.Empty,"",null 三者的区别
    C#中字符串string.Empty、""和null三者的区别1.string.Emptystring.Empty是一个表示空字符串的静态字段。它实际上等同于""(空字符串),但使用string.Empty可以更加清晰地表示我们需要一个空字符串。2.""(空字符串)双引号中没有任何字符的字符串被称为空字符串。它......