《java基础知识》Java字符串详解

本文内容:

String类的概述

String类的使用步骤

String类的常用方法

本文目的:

能够使用String类的构造方法创建字符串对象

能够明确String类的构造方法创建对象,和直接赋值创建字符串对象的区别

能够使用文档查询String类的判断方法

能够使用文档查询String类的获取方法

能够使用文档查询String类的转化方法

一、String类

概述java.lang.String 类代表字符串。Java程序中所有的字符串文字(比如"abc")都可以被看成是实现此类的实例。类String中包括用在检查每一个字符串的方法,比如用于比较字符串,搜索字符串,提取字符串以及创建具有翻译为大写或者是小写的所有字符的字符串副本。

特点(1)字符串是不变的,字符串的值在创建以后是不可以被更改的

案例:

public class var {
    public static void main(String[] args) {
        String str = "abc";
        str += "d";
        System.out.println(str);
    }
}

运行结果:

特点(2)因为String对象是不可以变换的,所以它们才可以被共享。

public class var {
    public static void main(String[] args) {
        //内存中只有一个“abc”被创建。
        String s1 = "abc";
        String s2 = "abc";
    }
}

特点(3)"abc"等于char[ ] data={′a′,′b′,′c′}

public class var {
    public static void main(String[] args) {
        char[] data={‘a‘,‘b‘,‘c‘};
        String str = new String(data);
        System.out.println(str);
    }
}

运行结果:

3. 使用步骤

查看类

java.lang.String:此类不需要再导入

public String( ):初始化新创建的String对象,可以让它表示空字符序列

public String(char[ ] value):通过当前参数当中的字符数组来构造新的String

public String(byte[ ] bytes):通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String

构造举例,代码如下所示:

public class var {
    public static void main(String[] args) {
        //无惨构造
        String str0 = new String();
        //通过字符数组构造
        char[] data={‘a‘,‘b‘,‘c‘};
        String str1 = new String(data);

        //通过字节数组构造
        byte[] bytes={97,98,99};
        String str2 = new String(bytes);
    }
}

4.常用的方法

(1)判断功能的方法

案例:

public class var {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = "hello";
        String s3 = "HELLO";
        System.out.println("------------通过equals比较-----------------");
        if(s1.equals(s2)){
            System.out.println("s1.equals(s2): true");
        }
        if(!s1.equals(s3)){
            System.out.println("s1.equals(s3): false");
        }
        System.out.println("------------通过equalsIgnoreCase比较-----------------");
        if(s1.equalsIgnoreCase(s2)){
            System.out.println("s1.equals(s2): true");
        }
        if(s1.equalsIgnoreCase(s3)){
            System.out.println("s1.equals(s3): true");
        }
    }
}

运行结果:

(2)获取功能的方法:

public class var {
    public static void main(String[] args) {
        String s1 = "hello";
        //获取字符串长度
        System.out.println("字符串长度:"+s1.length());
        //拼接字符串
        String s2 = s1.concat("world");
        System.out.println("字符串s1拼上world后:"+s2);
        //获取指定位置元素
        char c1= s1.charAt(0);
        System.out.println("字符串s1第一位:"+c1);
        //获取字符串中出现指定元素的位置
        int i = s1.indexOf("e");
        System.out.println("字符串s1中‘e’所在位置:"+i);
        //截取字符串
        String s3 = s1.substring(0,2);
        System.out.println("截取字符串s1中1到2的元素:"+s3);
    }
}

运行结果:

(3)转换功能的方法:

public class var {
    public static void main(String[] args) {
        String s1 = "hello";
        //字符串转成字符数组
        char[] arr = s1.toCharArray();
        for (int i = 0; i < arr.length ; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
        //转换成字节
        byte[] b1 = s1.getBytes();
        for (int i = 0; i < b1.length ; i++) {
            System.out.print(b1[i] + " ");
        }
        System.out.println();
        //字符替换
        String s2 = s1.replace("ll","LL");
        System.out.println("替换后的字符串为"+s2);
    }
}

运行结果:

(4)分割功能的方法:

public class var {
    public static void main(String[] args) {
        String s1 = "hello,world";
        String[] arr = s1.split(",");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

运行结果:

参考:https://baijiahao.baidu.com/s?id=1622780499548219487&wfr=spider&for=pc

原文地址:https://www.cnblogs.com/jssj/p/11145905.html

时间: 2024-11-15 03:56:12

《java基础知识》Java字符串详解的相关文章

java字符串详解

class StringEqualTest { public static void main(String[] args) { String s1 = "Programming";//栈 String s2 = new String("Programming");//栈 String s3 = "Program";//常量 String s4 = "ming";//常量 String s5 = "Program&q

Java之字符串详解

字符串详解 package com.yuanzijian02; public class ObjectTest { public static void main(String[] args) { // TODO 自动生成的方法存根 Object object = new Object(); Object object2 = new Object(); System.out.println(object == object2);             System.out.println("-

Java synchronized详解

Java synchronized详解 第一篇: 使用synchronized 在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题.在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用.我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款.取款操作的. 在程序中我们使用了一个简化版本的Account类,代表了一个银行账户的信息.在主程序中我们首先生成了1000个线程,然后启动它们

Java堆栈详解 .

1. Java中堆栈(stack)和堆(heap) (1)内存分配的策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不 允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的

Java网络详解

Java网络详解 Java网络基本概念 网络基础知识 1.计算机网络形式多样,内容繁杂.网络上的计算机要互相通信,必须遵循一定的协议.目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议 2.网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上

java多线程详解

转自:线程间通信.等待唤醒机制.生产者消费者问题(Lock,Condition).停止线程和守护线程.线程优先级 1  线程间通信 1.1  线程间通信 其实就是多个线程在操作同一个资源,但是操作的动作不同. 比如一个线程给一个变量赋值,而另一个线程打印这个变量. 1.2  等待唤醒机制 wait():将线程等待,释放了CPU执行权,同时将线程对象存储到线程池中. notify():唤醒线程池中一个等待的线程,若线程池有多个等待的线程,则任意唤醒一个. notifyAll():唤醒线程池中,所有

Java泛型详解(转)

文章转自  importNew:Java 泛型详解 引言 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除. 泛型基础 泛型类 我们首先定义一个简单的Box类: public class Box { private String object; public void set(String object) { this.object = object; } public Stri

Java 正则表达式详解_正则表达式

body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;}

java 泛型详解(普通泛型、 通配符、 泛型接口)

java 泛型详解(普通泛型. 通配符. 泛型接口) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能-----Java的泛型. 1.Java泛型 其 实Java的泛型就是创建一个用类型作为参数的类.就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1.str2的值是可变的.而泛型也是一样的,这样写class Java_Generics<K