博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6.0字符串String
阅读量:6333 次
发布时间:2019-06-22

本文共 3592 字,大约阅读时间需要 11 分钟。

大纲:

6.1创建字符串

  定义:String类即字符串类型,并不是JAVA的基本数据类型,但可以像基本数据类型一样用,用双引号括起来进行声明。在JAVA中用String类的构造类型方法来创建字符串变量。常用构造方法如下:

  1.String()

    一个String对象,可以表示一个空字符序列。

<例>:String s=new String();

2. String(char a[])

  用一个字符数组a创建String对象。

<例>:char a[]=new char{'我','爱','你'};

          String s=new String(a);

//等价于:String s=new String(“我爱你”);

3.String(char a[],int offset,int length)

提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串的长度。

<例>:char a[]={'s','t','r','i','n','g'};

         String s=String(a,1,3);

//等价于:String s={“tri”};

6.2字符串操作

  定义:对于已经声明的字符串,可以对其进行相应的操作,String类中包含很多方法。

6.2.1字符串连接

  1.多个字符串连接

  连接多个字符串时,在每两个连接的字符串之间用“+”相连,“+”就是字符串的连接符,连接后生成一个新的字符串。

<例>:String s1=new String ("hello");

         String s2=new String ("word");

        String s=s1+" "+s2;

        运行结果:hello word

 2.连接其他数据类型

 在字符串和其他数据类型连接时,同时使用"+"连接符,连接之后的返回值是字符串.

<例>:int booktime=4;

        float computer=2.5f;

        System.out.println("我每天花"+booktime+"个小时看书,用"+computer+"个小时上机操作.");

6.2.2获取字符串信息

1.获取字符串长度

str.length();方法

***str:指的是字符串对象

***返回值:int类型的字符串长度

String a="hello world";

System.out.println(a.length);//输出11.

***空格也算长度

2.获取指定字符的索引位置

str.indexOf(substr);//返回字符首次出现位置的索引

str.lastindexOf(substr);//返回字符最后出现位置的索引

str:任意字符串对象

substr:要搜索的字符

在计算机中,返回的String对象索引都是从0开始的.

3.获取指定索引位置的字符

使用String类的charAt()方法可获取指定索引处的索引下的字符,返回字符的索引,

格式:  str.charAt(int index);

      ***   str:任意字符串

      ***  index:整型值,用于指定要返回的字符的下标.

      ***  返回值:返回指定索引位置的字符.

<例>:String s="hello world";

        char s1=s.charAt(0);

        System.out.println(s1);//输出:h

6.2.3判断字符串

判断字符串主要是判断字符串是否相等,判断字符串是否以指定的字符串开始或结尾.这里讲的是判断字符串是否相等.

(1)     equals()方法

     使用equals方法对字符串进行比较时严格区分大小写的,再此条件下,如果两个字符串扔具有相同的字符和长度,则返回true,否则返回folse.

语法:str.equals(String otherstr)

***str:参与比较的一个字符串对象

***otherstr:参加比较的另一个字符串对象

***返回值:返回boolean类型.

(2)    equalslgnoreCase()方法

使用equalslgnoreCase方法对字符串进行比较时忽略区分大小写的,再此条件下,如果两个字符串扔具有相同的字符和长度,则返回true,否则返回folse.

语法:str.equalslgnoreCase(String otherstr)

***str:参与比较的一个字符串对象

***otherstr:参加比较的另一个字符串对象

***返回值:返回boolean类型.

在字符串比较中,不允许使用"==",这是严重错误.

 
package 基本数据类型;public class String字符串 {    public static void main(String[] args) {        //String    不同定义方法意义不同        String str="字符串常量";        String str1=new String("字符串常量");//构造方法,        String str2=new String("字符串常量");//new开辟新的内存空间        String str3="字符串常量";        System.out.println(str);        System.out.println(str1);        System.out.println(str2);        System.out.println(str==str1);//返回false,因为定义方式不同,意义不同        System.out.println(str==str2);//返回false,因为定义方式不同,意义不同        System.out.println(str1==str2);//返回false,因为定义方式不同,意义不同        System.out.println(str==str3);//返回true,因为定义方式相同,意义相同                //==运算实际比较的是内存地址是否相等,本质不是不是比较值,用new时不适用        //解决方法    .equals        System.out.println(str1.equals(str2));//true,这个才是表示字符串是否相等        System.out.println(str.equals(str1));                //字符串信息        //.length()字符串长度,带括号的是方法,不带括号的是属性        System.out.println("str字符串长度="+str.length());        //传入参数        char[]c=new char[]{'我','很','好'};        String str4=new String(c);        System.out.println(str4);        //.indexOf从(前往后)查找字符串中子字符串的首个位置,返回找到后的首字的索引值          //有再多也返回第一个 .indexOf        System.out.println("常字的位置="+str.indexOf("常"));        //返回第一个字的位置        System.out.println("常字的位置="+str.indexOf("串常量"));        //如果字符串中查找不到,返回-1   判断包含某个字符串,<0没有,>=0包含        System.out.println("常字的位置="+str.indexOf("xxx"));                                //.lastIndexOf检索从(后往前)查找位置,但是返回索引值仍是从0开始        System.out.println(str.lastIndexOf("常"));                //获取字符        char c1=str.charAt(0);        System.out.println(c1);    }}答案:字符串常量字符串常量字符串常量falsefalsefalsetruetruetruestr字符串长度=5我很好常字的位置=3常字的位置=2常字的位置=-13字

 

转载于:https://www.cnblogs.com/panyiquan/p/5228073.html

你可能感兴趣的文章
oracle故障解决
查看>>
tcpdump
查看>>
数据库内存结构
查看>>
利用Shell开发跳板机功能脚本案例
查看>>
51CTO的技术门诊谈OSSIM
查看>>
六年心路成长 —— 做自己
查看>>
Unix整理笔记——高级命令sed和awk——里程碑M10
查看>>
Linux系统详解 第六篇:系统的启动、登录、注销与开关机
查看>>
ios电话拨打进行监听电话状态
查看>>
京东基于Spark的风控系统架构实践和技术细节
查看>>
什么时候使用CountDownLatch
查看>>
C#之MemberwiseClone与Clone
查看>>
Android性能优化之利用Rxlifecycle解决RxJava内存泄漏
查看>>
转: 如何为你的开源项目选择一个合适的开源协议?
查看>>
关系型数据库和NOSQL数据库对比
查看>>
Atitit 记录方法调用参数上下文arguments
查看>>
webstorm常用功能FTP,及常用快捷键
查看>>
eclipse html 打开方式
查看>>
[求助] win7 x64 封装 出现 Administrator.xxxxx 的问题
查看>>
人类投资经理再也无法击败电脑的时代终将到来了...
查看>>