java 面向对象String类
1.String类:String 是不可变字符序列
1) char charAt(int index)返回字符串中第 index 个字符。
2) boolean equalsIgnoreCase(String other) 如果字符串与other
相等(忽略大小写),则返回 true
3) int indexOf(String str) lastIndexOf() 查找指定字符串
出现的位置(下标)
4) int length()返回字符串的长度。
5) String replace(char oldChar,char newChar)返回一个新串,
它 是 通过 用 newChar 替 换 此字 符 串中 出 现的 所 有
oldChar 而生成的
6) boolean startsWith(String prefix)如果字符串以 prefix 开始,
则返回 true
7) boolean endsWith(String prefix) 如果字符串以 prefix 结
尾,则返回 true
8) String substring(int beginIndex)
String substring(int beginIndex,int endIndex)返回一个新字符
串,该串包含从原始字符串 beginIndex 到串尾或 endIndex-1
的所有字符
9) String toLowerCase()返回一个新字符串,该串将原始字符
串中的所有大写字母改成小写字母
10) String toUpperCase()返回一个新字符串,该串将原始字
符串中的所有小写字母改成大写字母
11) String trim() 返回一个新字符串,该串删除了原始字
符串头部和尾部的空格
public class MyString {
public static void main(String[] args) {
String str1 = "hello word";
String str2 = "hello word";
System.out.println(str1.charAt(1));//e 返回字符串中第 index 个字符。
System.out.println(str1.length());//
System.out.println(str1.equalsIgnoreCase("abc"));//false
System.out.println(str1.equals(str2));//true
System.out.println(str1.indexOf('d'));//9 下标从0开始
System.out.println(str1.lastIndexOf('o'));//
System.out.println(str1.replace('o', 'q'));//hellq wqrd
System.out.println(str1);//hello word 上一条语句替换没有发生在原来的字串中 而是产生一个新串作为输出
System.out.println(str1.startsWith("he"));//true
System.out.println(str1.endsWith("rd"));//true
System.out.println(str1.substring(3));//lo word
System.out.println(str1.substring(1, 6));//ello
System.out.println(str1);//hello word
str1 = str1.substring(3);
System.out.println(str1);//lo word
String str3 = " HELlo word ";
System.out.println(str3.trim());//HELlo word
System.out.println(str3.toLowerCase());// hello word
System.out.println(str3.toUpperCase());// HELLO WORD
}
}
2.String比较和构造方法
compareTo源码:先比较每一个字符是否相同,再比较长度
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}
实例:
public class TestString {
public static void main(String[] args) {
String str="apple";
String str2="banana";
String str3="cat";
String str4="dog";
String str5="app";
/**求两个字符串的长度的最小值,使用循环,比较对应位置上的字母,如果不相同,则对应位置字母的ASCII值相减*/
System.out.println(str.compareTo(str2)); //-1 97-98?
System.out.println(str.compareTo(str3));//-2 97-99?
System.out.println(str.compareTo(str4));//-3 97-100?
//两个字符串的长度相差 5-3=2
System.out.println(str.compareTo(str5)); //2
/**String类的构造方法*/
String s1=new String();//创建了一个长度为0的字符串
String s2=null;//没有创建对象,只是声明了String类型的对象s2
String s3=new String("hello");
//通过char类型的数组构造String对象
char [] c={'a','b','c'};
String s4=new String(c);
System.out.println(s4);//abc
byte [] b={97,98,99};
String s5=new String(b);
String s6=new String(c,0,2);
System.out.println("s6:"+s6);//s6:ab
}
}
3.字符串相等的判断
==:比较两个字符串内存地址是否相等
equals(Object obj):用于比较两个字符串对象的内容是否相等
public class TestString {
public static void main(String[] args) {
String str="abc";
String str2=new String("abc");
System.out.println("两个对象的内存地址是否相等:"+(str==str2));//false
/**比较对应位置上的字符是否相等,如果所有的对象位置上的字符均相等,true,否则返回false*/
System.out.println("两个对象的内容是否相等:"+(str.equals(str2)));
//以下结果为 false
/**因为Person对象 instanceof String 的结果为false ,直接返回false*/
System.out.println("String对象与Person对象的内容是否相等:"+(str.equals(new Person())));
}
}
class Person{
}
4.常量池:用于存储在编译期确定,并被保存在已编译的字节码文件中的一些数据,包括 final 修饰变量及字符串变量,和符号引用量。
public class TestString2 {
public static void main(String[] args) {
String str1="abc";
String str2="a"+"b"+"c";
String str3=new String("abc");
String str4=str3+"";
String str5=new String("abc");
System.out.println("str1==str2:"+(str1==str2));//true
System.out.println("str1==str3:"+(str1==str3));//false
System.out.println("str1==str4:"+(str1==str4));//false
System.out.println("str3==str5:"+(str3==str5));//false
}
}

等号右侧有new则在堆里开空间
java 面向对象String类的更多相关文章
- Java面向对象-String类
1,实例化String对象 有两种方式,我们直接看代码: package com.java1234.chap03.sec08; public class Demo1 { public static v ...
- Java面向对象 String 基本数据类型对象包装类
Java面向对象 String 知识概要: (1)String的用法详解 (2)基本数据类型对象包装类 String 顾名思义,该类主要是对字符串 ...
- Java面向对象 Object类 内部类
Java面向对象 Object类 内部类 知识概要: 一:Object类 二:内部类 匿名内部类的写法 1.Object O ...
- Java中String类的方法及说明
String : 字符串类型 一. String sc_sub = new String(c,3,2); // String sb_copy = new String(sb) ...
- java.lang.String 类的所有方法
java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定 ...
- java中String类学习
java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度. (3)charAT:字符操作,按照索引值获得字符串中的指定字符 ...
- 深入分析Java的String类的方法与特点
字符串是任何编程语言都必须支持的变量类型,有些编程语言是直接提供了原生的变量类型,有些编程语言则使用语法特性以 SDK 的形式提供支持.在Java编程平台中,对字符串的支持使用了后者的形式,就是通过在 ...
- java 中String类的常用方法总结,带你玩转String类。
String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...
- 在java中String类为什么要设计成final
在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087
随机推荐
- [js高手之路]深入浅出webpack教程系列2-配置文件webpack.config.js详解(上)
[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...
- 【读书笔记】iOS-iPad与iPhone
在开发通用型应用的时候,你总是需要记住,iPad并不是一个大大的iPod touch,为iPad开发的应用的界面应该更好地利用iPad的大屏幕,而不应该是iPhone应用的复制品. 参考资料:< ...
- ExtJS学习之MessageBox
MessageBox为ExtJS中的消息对话框,包括alert confirm prompt show四种. 1.index.html <!DOCTYPE html PUBLIC " ...
- eclipse没有server选项解决方法
eclipse是是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境. 它使用频率十分高,然而当使用它配置weblogic的时候,经常 ...
- js,H5本地存储
//存储本地存储----setItem(存储名称,数据名称) var c={name:"man",sex:"woman"}; localStorage.setI ...
- Kotlin入门(4)声明与操作数组
上一篇文章介绍了基本变量类型在Kotlin中的用法,不过这只针对单个变量,如果要求把一组相同类型的变量排列起来,形成一个变量数组,那又该如何声明和操作呢? 在Java中声明数组,跟在C语言中声明是一样 ...
- (网页)Java日志记录框架Logback配置详解(企业级应用解决方案)(转)
转自CSDN: 前言 Logback是现在比较流行的一个日志记录框架,它的配置比较简单学习成本相对较低,所以刚刚接触该框架的朋友不要畏惧,多花点耐心很快就能灵活应用了.本篇博文不会具体介绍Logbac ...
- 13、多进程multiprocessing、进程池
内容相关: multiprocessing: 进程的创建与运行 进程常用相关函数 进程池: 为什么要有进程池 进程池的创建与运行:串行.并行 回调函数 多进程multiprocessing: pyth ...
- springboot中使用mybatis显示执行sql
springboot 中使用mybatis显示执行sql的配置,在properties中添加如下 logging.你的包名=debug 2018-11-27 16:35:43.044 [DubboSe ...
- django模板语言之Template
当前端的一些数据需要后端传送过来并展示时,用到了django的模板语言,模板语言的作用就是,在后端把一些处理好的数据,通过模板语言所规定的格式,通过render渲染,放到前端页面固定的位置展示.这之间 ...