String类(2)
来源:互联网 发布:雨课堂教学软件 编辑:程序博客网 时间:2024/04/28 18:08
现在我们就来介绍一下String类的一些常用方法。
首先先介绍一下String类的构造方法:
通过API文档大家可以看到,String类的构造方法甚多啊,在此Endeavor选择了一些和大家交流交流:
1)String() 创建一个空内容 的字符串对象。
2)String(byte[] bytes) 使用一个字节数组构建一个字符串对象
3)String(byte[] bytes, int offset, int length)
————bytes : 要解码的数组
————offset: 指定从数组中那个索引值开始解码。
————length: 要解码多个元素。
4)String(char[] value) 使用一个字符数组构建一个字符串。
5)String(char[] value, int offset, int count) 使用一个字符数组构建一个字符串, 指定开始的索引值,与使用字符个数。
6)String(int[] codePoints,int offset,int count)
7)String(String original)
以上就是String类的全部构造方法了。
记住: 使用字节数组或者字符数组都可以构建一个字符串对象。
接下来说说,String类的方法
1)获取方法:
a)int length() 获取字符串的长度。
b)char charAt(int index) 获取特定位置的字符 (角标越界)。
c)int indexOf(String str) 查找子串第一次出现的索引值,如果子串没有出现 在字符串中,那么则返回-1表示。
d)int lastIndexOf(String str) 查找子串最后一次出现的索引值 , 如果子串没有出现 在字符串中,那么则返回-1表示。
2)判断方法
a)boolean endsWith(String str) 是否以指定字符结束。
b)boolean isEmpty()是否长度为0 ,讨论三种情况:有值、“”、 null。
c)boolean contains(CharSequences) 是否包含指定序列,应用:搜索。
d)boolean equals(Object anObject) 是否相等。
e)boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等。
3)转换方法
a)char[] toCharArray() 将字符串转换为字符数组。
b)byte[] getBytes() 将字符串转换为字节数组
4)其他方法
a)String replace(String oldChar, String newChar) 替换。
b)String[] split(String regex) 切割。
c)String substring(int beginIndex) 指定开始的索引值截取子串。
d)String substring(int beginIndex, int endIndex) 指定开始 与结束的索引值截取子串。
e)String toUpperCase() 转大写。
f)String toLowerCase() 转小写。
d)String trim() 去除字符串首尾的空格。
扩展:自己定义一个trim()方法,提供给大家代码。
import java.util.Arrays;public class Demo{ public static void main(String[] args){ String str = " java "; MyTrim(str); } //自定义一个Trim()方法——MyTrim()方法 public static void MyTrim(String str){ char[] c = str.toCharArray(); int startIndex = 0; int endIndex = c.length-1; //注意元素从零开始要减一 while(true){ if(c[startIndex] == ' '){ startIndex++; }else{ break; } if(c[endIndex] == ' '){ endIndex--; }else{ break; } } for(int i = startIndex;i<=endIndex;i++){ System.out.print(c[i]+","); } }}
综合应用:
/*需求1:自己实现trim的方法。需求2:获取上传文件名 "D:\\20120512\\day12\\Demo1.java"。需求3:将字符串对象中存储的字符反序。 新中国好-->好国中新需求4:求一个子串在整串中出现的次数。 */public class Demo1{ public static void main(String[] args) { String str =" 传智 播客 "; System.out.println(myTrim(str)); str = "D:\\20120512\\day12\\Demo1.java"; getFileName(str); str = "新中国好"; System.out.println("翻转后的字符串:"+ reverse(str)); str = "abcjavaabcjavaphpjava"; //java getCount(str, "java"); } //需求4:统计子串出现的次数 public static void getCount(String str,String target){ int count = 0 ; //用于记录出现的次数 int fromIndex = 0; // 记录从那个索引值开始寻找目标子串 while((fromIndex = str.indexOf(target, fromIndex))!=-1){ //如果indexof方法返回的不是-1,那么就是已经找到了目标 元素。 count++; fromIndex = fromIndex+target.length(); } System.out.println("出现的次数:"+ count); } //需求3:将字符串对象中存储的字符反序。 public static String reverse(String str){ char[] arr = str.toCharArray(); for(int startIndex = 0 , endIndex=arr.length-1 ; startIndex<endIndex; startIndex++,endIndex--){ char temp = arr[startIndex]; arr[startIndex] = arr[endIndex]; arr[endIndex] = temp; } //使用字符数组构建一个字符串。 return new String(arr); } //需求2: 获取上传文件名为"D:\\20120512\\day12\\Demo1.java"。 public static void getFileName(String path){ int index = path.lastIndexOf("\\"); String fileName = path.substring(index+1); System.out.println("文件名:"+ fileName); } //需求1:自己实现trim的方法。 public static String myTrim(String str){ //先转换成字符数组 char[] arr = str.toCharArray(); //定义两个变量记录开始与结束 的索引值 int startIndex = 0 ; int endIndex = arr.length -1; //确定开始的索引值 while(true){ if(arr[startIndex]==' '){ startIndex++; }else{ break; } } //确定结束的索引值: while(true){ if(arr[endIndex]==' '){ endIndex--; }else{ break; } } //截取子串返回 return str.substring(startIndex,endIndex+1); }}
- String类(2)
- c++中String类(2)
- String类——练习(2)
- String类2
- String类(二)
- (四十八)string类
- String类(1)
- string类(c++)
- String类(转)
- String类(一)
- String类(****)
- String类(二)
- C++ string (2)
- String.String类
- String类(一 )--String类、StringBuffer类、包装类
- NYOJ 题目5 Binary String Matching(string类使用)
- String类的常用方法(轻松玩转String)
- string 类的学习 --2
- 数据结构之线性链表
- webview加载htmlpx和dp关系
- leetcode-java-27. Remove Element
- Find Image Rotation and Scale Using Automated Feature Matching
- RequireJS
- String类(2)
- Adaptive Object Detection Using Adjacency and Zoom Prediction
- mysql日期比较,注意格式
- java interview 1
- linux正则表达式
- html5<canvas>画图
- VB语言设计“用户名”与“密码”实验报告
- 03-Hive数据加载的几种方式
- 下一代因特网之IPv6