代码编织梦想

API(Application Programming Interface) &字符串

API(应用程序编程接口)

字符串

1.String

  • Java程序中的所有字符串文字(列如:“abc”)都为此类的对象。

  • String是Java定义好的一个类。定义在java.lang包中,所以使用的时候不需要导包。

  • 字符串不可变,他们的值在创建后不能被更改。

2.创建String对象的两种方法

  1. 直接赋值

    String name = "里古拉斯"
  2. new 构造方法

3.StringTable串池

直接赋值的字符串才有,JDK7以前串池在方法区中,再此之后在堆内存中

当在使用直接赋值的时候,系统会检查该字符串在串池中是否存在,不存在则创建新的,存在的则复用。

public class Stringdemo {
    public static void main(String[] args) {
        String s1="abd";   //s1记录的是字符串abd的地址值
        String s2 = "abd";  //因为StringTable中已经有了相同字符串所以直接将地址值复用给s2
    }
}

补充:==号比的是什么

基本数据类型:比较的是数据值

引用数据类型:比较的是地址值

4.equals字符串比较

boolean equals(要比较的字符串) 完全一样结果为true反之为false

boolean equalsIgnoreCase(要比较的字符串) 忽略大小写的比较

public class Stringdemo {
    public static void main(String[] args) {
        String s1=new String("abd");
        String s2 = "abd";
        
        boolean result = s1.equals(s2);
        System.out.println(result);
    }
}

5.String Builder

StringBuilder可以看作是一个容器,创建之后里面的内容是可以变化的

作用:提高字符串的操作效率

//效率低,需要时间长
String str = "";
for(i=0;i<99999999999;i++){
    str = str + "abc";
}
​
​
//提高效率
StringBuilder sb = new StringBuilder();
for(i=0;i<99999999999;i++){
    sb.append("abc");
}
//StringBuilder是Java写好了的类,在底层被特殊处理打印对象不是地址值而是属性值。
Sysetm.out.println(sb)

StringBuilder构造方法

方法名说明
public StringBuilder()创建一个空白可变的字符串对象,不含任何内容
public Stringbuilder(String str)根据字符串的内容,来创建可变字符串对象

StringBuilder常用方法

方法名说明
public StringBuilder append(任意类型)添加数据并返回对象本事
public StringBuilder reverse()反转容器中的内容
public int length()返回长度(字符出现的个数)
public String toString()通过同String()就可以实现把StringBuilder转换为String

使用StringBuilder字符串反转

    public static void main(String[] args) {
        //1.键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
​
        //2.反转键盘录入的字符串
        String result = new StringBuilder().append(str).reverse().toString();
​
        //3.比较
        if(str.equals(result)){
            System.out.println("当前字符串是对称字符串");
        }else{
            System.out.println("当前字符串不是对称字符串");
        }
    }

使用StringBuilder的场景

  1. 字符串的拼接

  2. 字符串的反转

StringBuilder源码分析

  • 默认创建一个长度为16的字节数组

  • 添加的内容长度小于16,直接存

  • 添加的内容长度大于16会扩容(原来容量*2+2)

  • 如果大于扩容机制添加的容量(原来容量*2+2)则以实际长度为准

6.StringJoiner(JDK8)

概述:StringJoiner跟Stringbuilder一样,也可以看成是一个容器,创建之后里面的内容是可变的

作用:提高字符串操作的效率,而且代码编写特别简洁。

StringJoiner构造方法

方法名说明
public String Joiner(间隔符号)创建一个String Joiner对象,指定拼接时间的间隔符号
public String Joiner(间隔符号,开始符号,结束符号)创建一个String Joiner对象,指定拼接时的间隔符号,开始符号、结束符号

StringJoiner成员方法

方法名说明
public StringJoiner add(添加内容)添加数据,并返回数据本身
public int length()返回长度(字符出现的个数)
public String toString()返回一个字符串(该字符串就是拼接之后的结果)

7.字符串原理

字符串拼接原理:

  • 如果没有变量参与,都是字符串直接相加,编译后就是拼接之后的结果,会复用串池中的字符串

  • 如果有变量参与,每行拼接的代码,都会在内存中创建新的字符串,浪费内存。

(在JDK8以前,字符串拼接都是new一个StringBuilder对象进行拼接然后在使用toString方法转为字符串类型,过程十分麻烦,且浪费内存)

(在JDK8以后,字符串拼接会预估生成一个数组,来进行拼接)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52009660/article/details/129625625

数字number转字符串string-爱代码爱编程

数字类型转为字符串类型 1,四种方法:toString、String、'' 、new String() 2,差别:性能上:'' > String > toString > new String() 使用上: 2.1、toString var num = 123; //1.toS

c/c++读入多行字符串string-爱代码爱编程

  因为从流中读入数据保存到string中,string会遇到空格就停止录入。这样当我们输入一行带空格的字符串,就要考虑getline函数,从流中读入一行字符串。 1. 读入不含空格字符串   首先我要介绍一下标准C++

java字符串string类操作方法整理_敲代码的小黑猫的博客-爱代码爱编程_java 字符串复制

    最近利用晚上的一些空闲时间学习了Java的字符串部分,发现其与C语言、C++等面向过程语言在使用上出现的不同点,C语言仅仅提供了字符串类型的一个构造,相当于只给了开发者基本材料,让开发者自行去用材料造轮子;而Java给字符串提供了许多的可用方法,调用这些方法可以在一定程度上加快程序的开发效率,这也就相当于Java已经给开发人员提供好了轮子,只要用轮

求字符串的长度(string char)-爱代码爱编程

string类型 (1).用string的成员方法length()获取字符串长度 length()比较直观,表示的就是该字符串的长度。 #include <bits/stdc++.h> using namespace std; int main() { string s; cin>>s; cout&

c++ string类字符串查找-爱代码爱编程

1) find() 函数 find() 函数用于在 string 字符串中查找子字符串出现的位置,它其中的两种原型为: size_t find (const string& str, size_t pos = 0) const; size_t find (const char* s, size_t pos = 0) const; 第一个参数

string字符串输入-爱代码爱编程

cin和cout写输入输出非常方便,但是用cin输入string字符串时,默认遇到空格回车制表符等空白字符即字符串输入结束。 #include <iostream> #include <string> using namespace std; int main() { string a, b; cin >> a

C++ 读文件 将文件内容读入到字符串string中的方法-爱代码爱编程

#include <string> #include <fstream> #include <sstream> #include <iostream> #include <stdlib.h> using namespace std; //从文件读入到string里 string readFileI

java string 插入string_Java字符串String操作-爱代码爱编程

字符串查找 str.indexOf(String s)返回的是搜索字符或字符串首次出现的位置,str.lastIndexOf(String s)返回的是搜索字符或字符串最后一次出现的位置,如果没有检索到字符串则返回-1。 str.indexOf(String s) String str = "We are students";int size =

c++语言怎么定义字符串,C++ string(C++字符串)详解-爱代码爱编程

用字符数组存放字符串容易发生数组越界的错误,而且往往难以察觉。因此,C++ 标准模板库设计了 string 数据类型,专门用于字符串处理。 string 类型的变量就是用来存放字符串的,也叫“string对象”。string 并不是 C++ 的基本数据类型,它是 C++ 标准模板库中的一个“类”。关于这一点,现在不必深究,以后会学到。这里只要学会如何

C++字符串的几种输入方法(string和字符数组)-爱代码爱编程

ps:本文大部分内容参考于这篇博客,在这里加入了自己对这些函数在字符数组和string变量的理解和总结。 C++中的输入大致有6种方法:cin,cin.get(),cin.getline(),gets(),getchar() 1,cin 用法一:最常用的方法,接收一个字符串,无论是string还是char a[10],都是一样,但是遇到“空格”,“TA

SystemVerilog中字符串String类型的基础知识(一)-爱代码爱编程

1.字符串变量的长度是字符串中字符的个数。 2.字符串类型的变量是动态的,因为他们的长度在仿真的过程中可能发生变化。 3.通过对字符串变量的索引,可以对字符串中的单个字符读或写。 4.字符串的行为类似于长度为8bits倍数的packed arrays. 5.赋给不同大小的整型变量的packed arrays的字符串要么被截断为变量的大小,要么在必要时在左边

String 字符串替换-爱代码爱编程

replace方法     该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:     String s = “abcat”;     String s1 = s.replace(‘a’,‘1’);     该代码的作用是将字符串s中所有的字符a替换成字符1,生成的新字符串s1的值是“1bc

c++ string字符串详解-爱代码爱编程

文章目录 string字符串string的创建和初始化string的读写string的基本操作string的比较string的连接 string字符串 string本质上可以看做是一种vector< char >,也就是元素为char的vector。所以有关 vector的基本操作都可以在string上进行。 string的创建

c# 字符串string转换为double、float、int数据类型变量的方法_未来无限的博客-爱代码爱编程

一、字符串string转换为double 1、double.Parse方法:常用的方法签名为static Double Parse(string s),参数s代表被转换的字符串String。当字符串无法转换的时候,将会抛出异常。 2、Convert.ToDouble方法:方法签名为static double ToDouble(string value)