1,实例化String对象

有两种方式,我们直接看代码:

 package com.java1234.chap03.sec08;

 public class Demo1 {

     public static void main(String[] args) {
// 实例化String的方式一
String name1="张三";
System.out.println("name1="+name1); // 实例化String的方式二
String name2=new String("李四");
System.out.println("name2="+name2);
}
}

运行输出:

name1=张三

name2=李四

2,“==”VS“equals方法”

“==” 比较的是引用(是否指向同一个内存块)  “equals”比较的是具体内容

我们上下代码:

 package com.learn.chap03.sec06;

 public class Demo2 {

     public static void main(String[] args) {
String name1="张三"; // 直接赋值方式
String name2=new String("张三"); // new方式
String name3=name2; // 传递引用
String name4="张三";
String name5 = new String("张三"); // ==比较的是引用
System.out.println("name1==name2:"+(name1==name2));
System.out.println("name1==name3:"+(name1==name3));
System.out.println("name2==name3:"+(name2==name3));
System.out.println("name1==name4:"+(name1==name4));
System.out.println("name5==name3:"+(name5==name3)); // equals比较的是具体内容
System.out.println("name1.equals(name2):"+(name1.equals(name2)));
System.out.println("name1.equals(name3:"+(name1.equals(name3)));
System.out.println("name2.equals(name3):"+(name2.equals(name3)));
System.out.println("name1.equals(name4):"+(name1.equals(name4)));
System.out.println("name2.equals(name5):"+(name2.equals(name5)));
}
}

运行结果:

name1==name2:false
name1==name3:false
name2==name3:true
name1==name4:true
name5==name3:false
name1.equals(name2):true
name1.equals(name3:true
name2.equals(name3):true
name1.equals(name4):true
name2.equals(name5):true

我们给下内存提示:

3,String两种实例化方式的区别

直接赋值方式,创建的对象存放到字符串对象池里,假如存在的,就不会再创建;

new对象方式,每次都创建一个新的对象;

我们上一个示例:

 package com.java1234.chap03.sec08;

 public class Demo3 {

     public static void main(String[] args) {
String name1="张三";
String name2="张三";
String name3=new String("张三");
String name4=new String("张三"); System.out.println("name1==name2:"+(name1==name2));
System.out.println("name1==name3:"+(name1==name3));
System.out.println("name3==name4:"+(name3==name4));
} }

运行输出:

name1==name2:true

name1==name3:false

name3==name4:false

我们给下内存示意图:

4,字符串的内容不可变性

字符串的特性:不能改变字符串的内容;

要想改变,只能通过指向一个新的内存地址;

我们给下代码:

 package com.java1234.chap03.sec08;

 public class Demo4 {

     public static void main(String[] args) {
String name="张";
name+="三";
System.out.println(name);
}
}

这里我们修改了name,本质的话name指向了一个新的内存区域,我们给下内存示意图:

String类常用方法及基本使用

我们首先来学习基本使用Jdk api chm文档:

我们这里推荐使用1.6 是中文的。下载地址:http://www.java1234.com/a/javaziliao/shuji/2013/0506/355.html

里面的方法主要是经常查并使用,熟练应用即可。

我们双击打开:

我们点击 左上角 显示:

输入String 搜索 然后我们会在右侧找到String类的描述,可以查到String类的所有信息 包括描述 方法 属性;

这里介绍一些String类的常用方法:

1, char chartAt(int index) 返回指定索引处的char值

这里的index 是从0开始的;

我们先上下实例:

 package com.java1234.chap03.sec08;

 public class Demo5 {

     public static void main(String[] args) {
String name="张三";
char ming=name.charAt(1);
System.out.println(ming); String str="我是中国人";
for(int i=0;i<str.length();i++){
System.out.println(str.charAt(i));
}
}
}

运行输出:

2,int length() 返回字符串的长度;

在前面一个例子里我们已经演示了;

3,int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。

 package com.java1234.chap03.sec08;

 public class Demo06 {

     public static void main(String[] args) {
// indexOf方法使用实例
String str="abcdefghijdklmoqprstuds";
System.out.println("d在字符串str中第一次出现的索引位置:"+str.indexOf('d'));
System.out.println("d在字符串str中第一次出现的索引位置,从索引4位置开始:"+str.indexOf('d',4));
}
}

4,String substring(int beginIndex)   返回一个新的字符串,它是此字符串的一个子字符串。

 package com.java1234.chap03.sec08;

 public class Demo07 {

     public static void main(String[] args) {
// substring方式读取
String str="不开心每一天";
String str2="不开心每一天,不可能";
String newStr=str.substring(1);
System.out.println(newStr);
String newStr2=str2.substring(1, 6);
System.out.println(newStr2);
}
}

5,public String toUpperCase()  String 中的所有字符都转换为大写

 package com.java1234.chap03.sec08;

 public class Demo08 {

     public static void main(String[] args) {
String str="I'm a boy!";
String upStr=str.toUpperCase(); // 转成大写
System.out.println(upStr);
String lowerStr=upStr.toLowerCase(); // 转成小写
System.out.println(lowerStr);
}
}

Java面向对象-String类的更多相关文章

  1. java 面向对象String类

    1.String类:String 是不可变字符序列 1) char charAt(int index)返回字符串中第 index 个字符. 2) boolean equalsIgnoreCase(St ...

  2. Java面向对象 String 基本数据类型对象包装类

      Java面向对象  String 知识概要:              (1)String的用法详解 (2)基本数据类型对象包装类 String          顾名思义,该类主要是对字符串 ...

  3. Java面向对象 Object类 内部类

     Java面向对象 Object类    内部类 知识概要:                 一:Object类                 二:内部类 匿名内部类的写法 1.Object O ...

  4. Java中String类的方法及说明

    String : 字符串类型 一.      String sc_sub = new String(c,3,2);    //      String sb_copy = new String(sb) ...

  5. java.lang.String 类的所有方法

    java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定 ...

  6. java中String类学习

    java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度. (3)charAT:字符操作,按照索引值获得字符串中的指定字符 ...

  7. 深入分析Java的String类的方法与特点

    字符串是任何编程语言都必须支持的变量类型,有些编程语言是直接提供了原生的变量类型,有些编程语言则使用语法特性以 SDK 的形式提供支持.在Java编程平台中,对字符串的支持使用了后者的形式,就是通过在 ...

  8. java 中String类的常用方法总结,带你玩转String类。

    String类: String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.String类对象创建后不能修改,StringBuffer & St ...

  9. 在java中String类为什么要设计成final

    在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087

随机推荐

  1. ARM汇编指令集5

    为什么需要多寄存器访问指令? ldr/str每周期只能访问4字节内存,如果需要批量读取.写入内存时太慢,解决方案是stm/ld 举例(uboot start.S 537行)   stmia  sp, ...

  2. Activity传递参数——传递简单数据

    一.新建一个空的工程 二.在主界面中添加一个按钮 三.新建一个空的activity,并命名为TheAty 四.修改MainActivity.java中的onCreate函数 protected voi ...

  3. CSS:Tutorial four

    1.CSS Tables To specify table borders in CSS, use the border property. The example below specifies a ...

  4. Ganymed实现基本的自动化部署API

    Ganymed SSH-2 for Java是一个纯Java实现的SHH2库,官网为http://www.ganymed.ethz.ch/ssh2/,最新的更新时间为2006年10月,在用之前,请仔细 ...

  5. [转载] PHP升级导致系统负载过高问题分析

    原文:http://chuansongme.com/n/797172 背景 据XX部门兄弟反应, 其在将PHP从5.3.8 升级到5.5.13 时, 开始运行正常, 运行一段时间后, 系统负载变高,达 ...

  6. ORM 模型层

    一个模型就是一个单独的,确定的数据的信息源,包含了数据的字段和操作方法.通常,每个模型映射为一张数据库中的表 基本原则: 每个模型在Django中的存在形式为一个python类 每个模型都是djang ...

  7. uboot Makefile 文件源码分析

    Makefile 是一个神奇的文件 详情参考uboot配置和编译过程详解

  8. 我所常用的git命令

    说明公司向用git来管理项目的代码,我以前只是在eclipse中使用菜单来操作git,现在,学习一下命令,这样也不用安装各种git客户端软件了.git安装在官网上下载git,安装完成之后,在命令行中输 ...

  9. UIView+PYJExtension

    UIView+PYJExtension.h: // // UIView+PYJExtension.h // 扩展 // // Created by 彭运京 on 16/6/21. // Copyrig ...

  10. NSNotificationCenter 通知中心传值

    1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象. @property (readonly, copy) N ...