String类的使用

  1. 常见构造方法
    1. public String():空构造
    2. public String(byte[] bytes):把字节数组转成字符串
    3. public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
    4. public String(char[] value):把字符数组转成字符串
    5. public String(char[] value,int index,int count):把字符数组的一部分转成字符串
    6. public String(String original):把字符串常量值转成字符串
      1. char[] c={‘a‘,‘b‘,‘c‘};
      2. Strintg s=new String(c);
      3. //最后输出的结果是abc
      4. //通过构造方法产生字符串
  2. String类的常见面试题
    1. 判断定义为String类型的s1和s2是否相等?

      1. String s1 = "abc";
      2. String s2 = "abc";
      3. System.out.println(s1 == s2);
      4. System.out.println(s1.equals(s2));

      结果是相等的,因为S1和S2在创建的时候就是已经定下来的值,被创建在常量池中,所以他们的比较都是相等的

    2. 下面这句话在内存中创建了几个对象?
      1. String s1 = new String("abc");

      创建了2个对象,一个是在堆内存中的Strig类型对象,还有一个是ABC在常量池中的对象。

    3. 判断定义为String类型的s1和s2是否相等?
      1. String s1 = new String("abc");
      2. String s2 = "abc";
      3. System.out.println(s1 == s2);
      4. System.out.println(s1.equals(s2));

      S1==S2是不相等的,因为S1相当于在对内存中创建的对象,而S2是在常量池中的对象,2者的地址值是不同的。但是equals比较的是对象的属性值,结果为true。

    4. 判断定义为String类型的s1和s2是否相等?
      1. String s1 = "a" + "b" + "c";
      2. String s2 = "abc";
      3. System.out.println(s1 == s2);
      4. System.out.println(s1.equals(s2));

      结果是都为true,原因是Java中有常量自动优化机制,在创建对象的时候都是确定的常量值,所以Java会自动进行运算,并产生新的常量值,所以两者比较的都是相同的常量。

    5. 判断定义为String类型的s1和s2是否相等?
      1. String s1 = "ab";
      2. String s2 = "abc";
      3. String s3 = s1 + "c";
      4. System.out.println(s3 == s2);
      5. System.out.println(s3.equals(s2));

      S3==S2结果为假,虽然S1和S2常量,但是S3在运算的时候加入了S1变量进行运算,由于字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。所以在堆内存中有新建了字符缓冲区的对象,所以比较两者的地址值是肯定不同的。

  3. String类的判断功能
    1. boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
    2. boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
    3. boolean contains(String str):判断大字符串中是否包含小字符串
    4. boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
    5. boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
    6. boolean isEmpty():判断字符串是否为空。
  4. String类的获取功能
    1. int length():获取字符串的长度。
    2. char charAt(int index):获取指定索引位置的字符
    3. int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
    4. int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引。
    5. int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
    6. int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
    7. lastIndexOf:倒序查找。效果与indexOf相同。
    8. String substring(int start):从指定位置开始截取字符串,默认到末尾。
    9. String substring(int start,int end):从指定位置开始到指定位置结束截取字符串。
  5. String类的转换功能
    1. byte[] getBytes():把字符串转换为字节数组。
    2. char[] toCharArray():把字符串转换为字符数组。
    3. static String valueOf(char[] chs):把字符数组转成字符串。
    4. static String valueOf(int i):把int类型的数据转成字符串。
          注意:String类的valueOf方法可以把任意类型的数据转成字符串。
    5. String toLowerCase():把字符串转成小写。(了解)
    6. String toUpperCase():把字符串转成大写。
    7. String concat(String str):把字符串拼接。
  6. String类的其他功能
    1. String的替换功能
      1. String replace(char old,char new)//使用替换指定字符
      2. String replace(String old,String new)//替换指定字符串
    2. String的去除首尾空格
      1. String trim()//能去除字符串首尾两段的空格,返回新的字符串。
    3. String按字典顺序比较两个字符串大小
      1. int compareTo(String str)//按码表比较两个字符串在码表(unicode码表)中的大小,返回负数,零,正整数
      2. int compareToIgnoreCase(String str)//效果同上,只是该方法不计算大小写情况。

来自为知笔记(Wiz)

时间: 2024-08-10 00:04:59

String类的使用的相关文章

java String 类 基础笔记

字符串是一个特殊的对象. 字符串一旦初始化就不可以被改变. String s = "abc";//存放于字符串常量池,产生1个对象 String s1=new String("abc");//堆内存中new创建了一个String对象,产生2个对象 String类中的equals比较字符串中的内容. 常用方法: 一:获取 1.获取字符串中字符的个数(长度):length();方法. 2.根据位置获取字符:charAt(int index); 3.根据字符获取在字符串中

String类实现

String类是应用框架中不可或缺的类 重载运算符实现字符串的操作 #idndef IOTECK_STRING_H_#define IOTECK_STRING_H_namespace iotek{ class String { public: String(const char*=NULL); ~String(); String(const String&); //拷贝构造函数 //String a; a=b; String& operator=(const String &);

String类

一.概述 Sting s1 = "abc";    //s1是一个类类型变量,"abc"是一个对象. String s2 = new String("abc"); //s1 . s2 的区别: 前者在内存中有一个对象,后者在内存中有两个对象. s1.equals(s2) 为true  因为 String复写了equals方法 二.常见的功能-获取和判断 获取: 1.int length(); 获取长度 2.char chatAt(int inde

C++实现String类

这是一道十分经典的面试题,可以短时间内考查学生对C++的掌握是否全面,答案要包括C++类的多数知识,保证编写的String类可以完成赋值.拷贝.定义变量等功能. #include<iostream> using namespace std; class String { public: String(const char *str=NULL); String(const String &other); ~String(void); String &operator =(cons

java中String类的构造函数

String类中的构造函数String(); 构造一个空字符串对象String(byte[] bytes); 通过byte数组构造字符串对象String(byte[] bytes,int offset,int length);通过byte数组,从offset开始,总共length长的字节构造字符串对象String(char[] value); 通过char数组构造字符串对象String(byte[] char,int offset,int length);通过char数组,从offset开始,总

Java (六、String类和StringBuffer)

Java String 类 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 // ==比较的是字符串在栈中存放的首地址,而equals()比较的是两个字符串的内容是否相同 //普通的声明字符串的方法,只会在字符串常量池里开辟空间,并且开辟空间之前,会检查字符串常量池里是否已存在 //相同的数据,如果有,直接指向已存在的数据,如果没有会在字符串常量池里开辟一个新的空间 String s = "ccy"

JAVA API(一)String类和StringBuffer类

1.String类和StringBuffer类 在程序中经常会用到字符串,所谓的字符串就是指一连串的字符,它是由多个单个字符连接而成的.字符串中可以包含任意字符,这些字符必须包含在一对双引号""之内,如"abc".在Java中定义了String和StringBuffer类来封装字符串,并提供了一系列操作字符串的方法,它们都位于java.lang包中,因此不需要导包就可以直接使用.下面将对String类和StringBuffer类详细讲解. 1.1String类的初始

String类replaceAll方法正则替换深入分析

作者网址: https://my.oschina.net/shipley/blog/98973 背景:      前几天有人发了一个关于下面问题的贴,对这个有点好奇,故花时间做了点研究.        对单个反斜杠字符串替换成双斜杠的Java实现如下:    String s = "\\";    方法一:String sr1 = s.replaceAll("\\\\", "\\\\\\\\");    方法二:String sr1 = s.re

java11-3 String类的获取功能

package cn_String2;/* String类的获取功能 int length():获取字符串的长度. char charAt(int index):获取指定索引位置的字符 int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引. 为什么这里是int类型,而不是char类型? 原因是:'a'和97其实都可以代表'a' int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引. int indexOf(int ch,int

C++的string类

关于头文件cstring,提供了strlen及很多与字符串相关的函数的声明. 头文件string,要使用string类,必须在程序中包含头文件string,string类位于std中,必须提供一条using编译指令,或者使用std::string来引用它. 1.string类的使用: 不能将一个数组赋给另一个数组,但可以将一个string对象赋给另一个string对象. size()是string类的一个方法.可以将C++里边的string类理解成类型,我觉的可以理解成,创建:一个新类型,就像j