Java问题解读系列之String相关---String类的常用方法?
今天的题目是: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类的常用方法?的更多相关文章
- Java问题解读系列之基础相关---抽象类和接口
今天来说一波自己对Java中抽象类和接口的理解,含参考内容: 一.抽象类 1.定义: public abstract class 类名{} Java语言中所有的对象都是用类来进行描述,但是并不是所有的 ...
- Java问题解读系列之基础相关---含继承时的执行顺序
今天来研究一下含继承.静态成员.非静态成员时Java程序的执行顺序: 一.不含继承,含有静态变量.静态代码块 创建一个子类,该类包含静态变量.静态代码块.静态方法.构造方法 /** * @create ...
- Java问题解读系列之IO相关---Java深拷贝和浅拷贝
前几天和棒棒童鞋讨论Java(TA学的是C++)的时候,他提到一个浅拷贝和深拷贝的问题,当时的我一脸懵圈,感觉自己学Java居然不知道这个知识点,于是今天研究了一番Java中的浅拷贝和深拷贝,下面来做 ...
- Java问题解读系列之String相关---String类为什么是final的?
今天看到一篇名为<Java开发岗位面试题归类汇总>的博客,戳进去看了一下题目,觉得有必要夯实一下基本功了,所以打算边学边以博客的形式归纳总结,每天一道题, 并将该计划称为java问题解读系 ...
- Java问题解读系列之String相关---String、StringBuffer、StringBuilder的区别
今天的题目是String.StringBuffer和StringBuilder的区别: 首先还是去官方的API看看对这三种类型的介绍吧,Go...... 一.继承类和实现接口情况 1.String类 ...
- java中关于Collection和Map相关的类&接口之间的关系
上图(引用自)
- 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)
7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ...
- Java NIO学习系列七:Path、Files、AsynchronousFileChannel
相对于标准Java IO中通过File来指向文件和目录,Java NIO中提供了更丰富的类来支持对文件和目录的操作,不仅仅支持更多操作,还支持诸如异步读写等特性,本文我们就来学习一些Java NIO提 ...
- JAVA基础5——与String相关的系列(1)
与String相关的系列 String, 是JAVA中常见的一个引用类型,且其具有一定的特殊性. String类型被设置为final型,即不可继承,也就不可修改其中的实现. String可以改变吗 S ...
随机推荐
- AutoIt自动化编程(2)【转】
注意:窗口标题和窗口文本参数总是对大小写敏感的. 1.等待窗口系列命令/函数 AHK和AU3都提供了用法类似的一组窗口等待命令/函数:WinWait/WinWaitActive/WinWaitClos ...
- 解决Mybatis的invalid bound statement (not found)异常
使用Maven构建SSM时, 需要在pom.xml中配置一些信息, 否则mapper.xml就无法被扫描到, 程序就会抛invalid bound statement (not found)异常 解决 ...
- [JZOJ4640] 【GDOI2017模拟7.15】妖怪
题目 描述 题目大意 给你一堆aia_iai和bib_ibi(方便起见用的变量和上面不一样),让你搞出一个xxx(相当于题目中的ba\frac{b}{a}ab,随便推推就能知道), 使得max ...
- 「题解」:windy数
问题: windy数 时间限制: 1 Sec 内存限制: 512 MB 题面 题目描述 Windy 定义了一种 Windy 数:不含前导零且相邻两个数字之差至少为 的正整数被称为 Windy 数. ...
- 2-sat——poj3678经典建图
比较经典的建图,详见进阶指南 2-sat一般要用到tarjan来求强连通分量 /*2-sat要加的是具有强制关系的边*/ #include<iostream> #include<cs ...
- AnsiString, String, char,char
AnsiString 是一个类,String 是一个结构,char* 是一个指针 .String是Pascal的类型原型,因为C++中没有字符串数据类型的,因此使用char*来存储,char*必须是以 ...
- C# FTP上传下载(支持断点续传)
<pre class="csharp" name="code"><pre class="csharp" name=&quo ...
- 深入浅出 Java Concurrency (29): 线程池 part 2 Executor 以及Executors[转]
Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具.真正的线程池接口是ExecutorService. 下面这张图完整描述了线程 ...
- 3. 单元测试框架(unittest)1——TestCase
1. import unittest 引入unittest模块: 2. class SearchTest (unittest.TestCase): 定义一个继承于TestCase类的子类: 3 ...
- springmvc-环境配置-架构-配合mybatis-参数绑定
1.1. Spring入门 1.1.1. Springmvc是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得 ...