今天的题目是:String类的常用方法?

首先,我们在eclipse中定义一个字符串,然后使用alt+/就会出现String类的所有方法,如下图所示:

下面我就挑选一些常用的方法进行介绍:

首先定义两个字符串

String path1 = "C:\\Windows\\Web\\Wallpaper\\Windows\\img0.jpg";
String path2= " C:\\Windows\\Web\\Wallpaper\\Windows\\img0.jpg ";

1、charAt()方法,获取指定索引位置的字符

/**
* charAt()方法,获取指定索引位置的字符
*/ char c2 = path1.charAt(2);
System.out.println("path1的第2个字符是:"+c2+"\n"); char c3 = path1.charAt(3);
System.out.println("path1的第3个字符是:"+c3+"\n"); char c10 = path1.charAt(10);
System.out.println("path1的第10个字符是:"+c10+"\n");

上面的三个方法都是获取指定索引位置的字符,但是我用了三次输出,看着是没什么区别,其实大有学问,下面看一下他们的输出结果:

可以看出第2个字符是“\”;第3个字符是"W",而不是“\”;第10个字符也是“\”,而不是”s“,由此得出一个结论:

即字符串中的转义字符”\“将不会被视为字符串的一部分,也可以看做转义字符和被转义字符其实是占用同一个索引位置。

2、length()方法,用来获取字符串的长度

int l1 = path1.length();
System.out.println("path1的长度是:"+l1); //结果是41

3、substring(int beginIndex,int endIndex)方法:截取子串

String name1 = path1.substring(0, l1);
System.out.println("从0到"+l1+"截取的字符串是:"+name1);//C:\Windows\Web\Wallpaper\Windows\img0.jpg String name2 = path1.substring(1, 5);
System.out.println("从1到5截取的字符串是:"+name2);// \Wi

java中对此方法的定义是:

该方法中的两个参数分别指:

开始索引和结束索引,但是截取的时候不包含结束索引位置所在的字符,可以有以下两种理解:

(1)截取的是[beginIndex,endIndex-1]区间的字符串,两边都是闭区间,即包含该索引所在的字符;

(2)截取从beginIndex位置开始,长度为endIndex-beginIndex的字符串;

4、trim()方法:去掉字符串中的空格

int l2 = path2.length();
System.out.println("path2的长度是:"+l2);//45
String trim = path2.trim();
System.out.println("path2去掉空格后的长度是:"+trim.length())//41

5、equals(str)方法:比较两个字符串是否相等

boolean isequal = path1.equals(path2);
System.out.println(path1+(isequal?"等于":"不等于")+path2);//不相等,因为path2中有空格

6、contains()方法:判断字符串中是否包含某字符

boolean iscontain = path1.contains("jpg");
System.out.println(path1+"中"+(iscontain?"包含":"不包含")+"jpg");//C:\Windows\Web\Wallpaper\Windows\img0.jpg中包含jpg

7、endWith(String suffix)方法:判断字符串是否以suffix结尾,可用此方法获取文件后缀名来判断文件类型

boolean ends = path1.endsWith("jpg");//true

8、indexOf()方法:从前遍历,返回指定字符串所在的位置,有两种方法:

(1)indexOf(str):返回str在整个字符串中的位置,索引从0开始,向后查找;
(2)indexOf(str,fromIndex):返回str在整个字符串中的位置,索引从fromIndex开始,向后查找;

System.out.println("www.baidu.com".indexOf("com"));//
System.out.println("www.baidu.com".indexOf("com",6));//

9、lastIndexOf()方法:从后遍历,返回指定字符串所在的位置,有两种方法:

(1)lastIndexOf(str):返回str在整个字符串中的位置,索引从字符串结尾开始,向前查找;
(2)indexOf(str,fromIndex):返回str在整个字符串中的位置,索引从fromIndex开始,向前查找;

System.out.println("www.baidu.com".lastIndexOf("com"));//
System.out.println("www.baidu.com".lastIndexOf("com",6));//-1

如果返回值是-1,则说明找不到指定的字符串。

10、split()方法:用来按照指定的字符分割字符串,返回一个字符串类型的数组

String all = "1,2,3,4,5";
String[] own = all.split(",");
System.out.println(own);//[Ljava.lang.String;@15db9742
System.out.println(own.getClass().isArray());//true,判断own是否为数组类型
System.out.println(own.length);//

11、大小写转换方法

toLowerCase();大写转小写

toUpperCase();小写转大写

System.out.println("HELLO".toLowerCase());//hello
System.out.println("hello".toUpperCase());//HELLO

12、String.valueOf():将其他数据类型转成字符串类型

System.out.println(String.valueOf(true));//"true"
System.out.println(String.valueOf(false));//"false"
System.out.println(String.valueOf("1"));"1"
System.out.println(String.valueOf(1));"1"

13、getBytes():返回字节数组

String str = "hello,world!";
byte[] bstr = str.getBytes();
System.out.println(bstr.getClass().isArray());/true
System.out.println(bstr.getClass().isEnum());//false
System.out.println(bstr.length);//

可以看到返回的是一个字节数组,长度为字符个数,即12

以上就是常用的字符串方法,其他可以参考jdk官方文档查询

以上是今天的问题解答,如有错误之处,望发现错误的你能够指出......

Java问题解读系列之String相关---String类的常用方法?的更多相关文章

  1. Java问题解读系列之基础相关---抽象类和接口

    今天来说一波自己对Java中抽象类和接口的理解,含参考内容: 一.抽象类 1.定义: public abstract class 类名{} Java语言中所有的对象都是用类来进行描述,但是并不是所有的 ...

  2. Java问题解读系列之基础相关---含继承时的执行顺序

    今天来研究一下含继承.静态成员.非静态成员时Java程序的执行顺序: 一.不含继承,含有静态变量.静态代码块 创建一个子类,该类包含静态变量.静态代码块.静态方法.构造方法 /** * @create ...

  3. Java问题解读系列之IO相关---Java深拷贝和浅拷贝

    前几天和棒棒童鞋讨论Java(TA学的是C++)的时候,他提到一个浅拷贝和深拷贝的问题,当时的我一脸懵圈,感觉自己学Java居然不知道这个知识点,于是今天研究了一番Java中的浅拷贝和深拷贝,下面来做 ...

  4. Java问题解读系列之String相关---String类为什么是final的?

    今天看到一篇名为<Java开发岗位面试题归类汇总>的博客,戳进去看了一下题目,觉得有必要夯实一下基本功了,所以打算边学边以博客的形式归纳总结,每天一道题, 并将该计划称为java问题解读系 ...

  5. Java问题解读系列之String相关---String、StringBuffer、StringBuilder的区别

    今天的题目是String.StringBuffer和StringBuilder的区别: 首先还是去官方的API看看对这三种类型的介绍吧,Go...... 一.继承类和实现接口情况 1.String类 ...

  6. java中关于Collection和Map相关的类&接口之间的关系

    上图(引用自)

  7. 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)

    7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ...

  8. Java NIO学习系列七:Path、Files、AsynchronousFileChannel

    相对于标准Java IO中通过File来指向文件和目录,Java NIO中提供了更丰富的类来支持对文件和目录的操作,不仅仅支持更多操作,还支持诸如异步读写等特性,本文我们就来学习一些Java NIO提 ...

  9. JAVA基础5——与String相关的系列(1)

    与String相关的系列 String, 是JAVA中常见的一个引用类型,且其具有一定的特殊性. String类型被设置为final型,即不可继承,也就不可修改其中的实现. String可以改变吗 S ...

随机推荐

  1. img属性src的特点

    img属性src的特点: src=“图片地址” 成功则加载图片,失败则显示alt文字和断裂的图片 src="" 则不加载,不显示alt文字和断裂的图片 因此当图片加载失败后,$(& ...

  2. antidependence and data hazard

    See below example. ADDD  F6, F0, F8 SUBD   F8, F10, F14 Some article would say that “ There’s an ant ...

  3. 使用应用程序(Java/Python)访问MaxCompute Lightning进行数据开发

    MaxCompute Lightning是MaxCompute产品的交互式查询服务,支持以PostgreSQL协议及语法连接访问Maxcompute项目,让您使用熟悉的工具以标准 SQL查询分析Max ...

  4. Java可变参数与Collections工具类使用了解

    今天发现jdk1.5后增加了个可变参数,以前还一直不晓得 public static void main(String[] args) { System.out.println(getNum(1,2, ...

  5. Censoring【自动AC机】【水题毁我青春】【20190614】

    这题简直比注水猪肉还水QAQ. 以前做过KMP的Censoring单串匹配,果断选择自动AC机w 对短串建自动AC机 长串去机子里匹配 用个栈边匹配边弹出 记得弹出一个串后把匹配点指向栈顶就ojbk ...

  6. Error-IDEA:“Import from external model” 与 “Create from existing source”的区别

    ylbtech-Error-IDEA:“Import from external model” 与 “Create from existing source”的区别 1.返回顶部 1. “Import ...

  7. PAT甲级——A1076 Forwards on Weibo

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  8. TCP重传机制的学习应用

    1. TCP重传机制 TCP协议是一个可靠的协议.发送方每次发送一个数据包,需要等到ACK确认包再继续发送. 发出去的请求包在规定时间内没有收到ACK,不管是请求包丢失,还是ACK包丢失,还是网络延迟 ...

  9. 《数据结构与算法分析——C语言描述》ADT实现(NO.05) : 散列(Hash)

    散列(Hash)是一种以常数复杂度实现查找功能的数据结构.它将一个关键词Key,通过某种映射(哈希函数)转化成索引值直接定位到相应位置. 实现散列有两个关键,一是哈希函数的选择,二是冲突的处理. 对于 ...

  10. 从0开始学习ssh之basedao

    用于所有dao里边会有许多相同的方法,例如save,update等等.应此设计一个basedao,所有dao都继承它.这样可以省去许多工作量. basedao如下 package cn.itcast. ...