Java中String类常用方法(转)

转自:https://blog.csdn.net/kaishizhangcheng/article/details/52332543


int indexOf(String str)
该方法用于返回当给定字符串在当前字符串中的位置,若当前字符串不包含给定字符串则返回-1。
重载的方法
int indexOf(String str,int formIndex),从指定下标处(包含)查询子串,返回返回当给定字符串在当前字符串中的位置,若当前字符串不包含给定字符串则返回-1。
相关的方法
int lastIndexOf(String str),该方法用于返回子字符串在该字符串中最后一次出现的下标。

  1. /**
  2. * int indexOf(String str)
  3. * 返回当给定字符串在当前字符串中的位置
  4. * 若当前字符串不包含给定字符串则返回-1
  5. * 重载的方法
  6. * int indexOf(String str,int formIndex)
  7. * @author zc
  8. */
  9. @Test
  10. public void testIndexOf(){
  11. // 0123456789012345
  12. String str= "thinking in java";
  13. //查找in
  14. int index=str.indexOf( "in");
  15. System.out.println(index); //2
  16. int index2=str.indexOf( "ja");
  17. int index3=str.indexOf( "java");
  18. System.out.println(index2); //12
  19. System.out.println(index3); //12
  20. if(str.indexOf( "java")!=- 1){
  21. String str2=str.replace( "ja", "jaaa"); //thinking in jaaava
  22. System.out.println(str2);
  23. }
  24. //重载 indexOf(str,包含的起始下标),下标可越界
  25. int index4=str.indexOf( "ja", 16);
  26. System.out.println( "重载的indexOf:"+index4);
  27. //lastIndexOf()
  28. int index5=str.lastIndexOf( "i");
  29. System.out.println( "最后一个i的下标:"+index5);
  30. }

String substring(int start,int end)
截取字符串,传入的两个参数分别为要截取边界的下标。
在java api 中,通常使用两个数字表示范围时,都是含头不含尾,即包含起始下标对应的内容,但不包含结束下标的处对应的内容。

  1. public static void main(String[] args) {
  2.   //使用该方法截取域名
  3. String str= "http://www.abcde.cn";
  4. String name=str.substring( 11, 15);
  5. System.out.println(name);
  6. //重载 substring(int index):从该下标到结束
  7. name=str.substring( 11);
  8. System.out.println(name);
  9. //截取域名
  10. int point=str.indexOf( ".");
  11. int end=str.lastIndexOf( ".");
  12. String name1=str.substring(point+ 1,end);
  13. System.out.println(name1);
  14. }
  15. @Test
  16. public void test01(){
  17. String str2= "http://www.abc.com.cn";
  18. int start=str2.indexOf( ".")+ 1;
  19. int end=str2.indexOf( ".",start);
  20. String name=str2.substring(start,end);
  21. System.out.println(name);
  22. }

String trim()
去除一个字符串两边的空白字符(如空格,tab)

  1. String str= " hello ";
  2. String trim=str.trim();
  3. System.out.println(trim); //hello

char charAt(int index)
 返回当前字符串中指定位置的字符

  1. //charAt:通过位置 获取内容
  2. String str= "abcdef";
  3. char c=str.charAt( 2);
  4. System.out.println(c);

* boolean startWith(String str)
* boolean endWith(String str)
* 判断当前字符串是否是以给定的字符串开始或结束的

  1. public static void main(String[] args) {
  2. //使用这两个方法判断是否是图片
  3.   String str= "zhangc.jpg";
  4. boolean starts=str.startsWith( "zh");
  5. boolean end=str.endsWith( ".jpg");
  6. System.out.println(starts);
  7. System.out.println(end);
  8. }

String toUpperCase()
String toLowerCase()
 将当前字符串中的英文部分转换为全大写或全小写

  1. public static void main(String[] args) {
  2. String str= "Hellow World";
  3. str=str.toUpperCase();
  4. System.out.println(str);
  5. str=str.toLowerCase();
  6. System.out.println(str);
  7. }

static String valueOf()
String 提供了若干的静态重载的方法valueOf,可以将java中的其他类型转换为字符串类型
常用于将基本类型转换为字符串类型

  1. public static void main(String[] args) {
  2. int a= 123;
  3. //valueOf()性能好一点
  4. String str=String.valueOf(a);
  5. System.out.println(str);
  6. double d= 123.123;
  7. String str2=String.valueOf(d);
  8. //方法2,也可以将一个基本数据类型的数据转成String类型的变量
  9. String str3= 1234f+ "";
  10. System.out.println(str3);
  11. }
以下为检索某个字符在一个字符串中出现的所有下标的程序,可以使用charAt方法或intdexOf实现

  1. /**
  2. * 分别使用charAt()和indexOf()实现检索一个字符串中所有字符b出现的下标
  3. * @author zc
  4. */
  5. public class TCharAt {
  6. public static void main(String[] args) {
  7. String s= "abcbcdbcgdgscbbvfb";
  8. for( int i= 0;i<s.length();i++){
  9. if( 'b'==s.charAt(i)){
  10. System.out.println(i);
  11. }
  12. }
  13. }
  14. @Test
  15. public void test01(){
  16. String s= "abcbcdbcgdgscbbvfb";
  17. int from= 0;
  18. for( int i= 0;i<s.length();i++){
  19. int index=s.indexOf( "b", from);
  20. System.out.println(index);
  21. from=index+ 1;
  22. if(from>=s.length()){
  23. break;
  24. }
  25. }
  26. }
  27. }

String[] split(String regex)
将当前字符串按照满足正则表达式的部分进行拆分

然后将所有拆分后的部分返回

  1. public static void main(String[] args){
  2. String str= "abc123def456ghi789jkl";
  3. //按照数字部分拆分字符串
  4. String[] result=str.split( "\\d+"); //最大匹配
  5. System.out.println(result.length); //4
  6. for( int i= 0;i<result.length;i++){
  7. System.out.println(result[i]);
  8. }
  9. }
  10. @Test
  11. public void test02(){
  12. //字符串如果是末尾能够匹配上,所有末尾的 空 字符串会被忽略,切分的正则表达式应满足最大匹配
  13. String str= "abc123def456ghi789jkl12313233";
  14. String[] result=str.split( "\\d");
  15. for( int i= 0;i<result.length;i++){
  16. System.out.println(result[i]);
  17. }
  18. System.out.println( "len:"+result.length); //10,末尾的数字切分出来的 空 字符串会被忽略
  19. String str2= "233abc123def456ghi789jk";
  20. String[] result2=str2.split( "\\d");
  21. for( int i= 0;i<result2.length;i++){
  22. System.out.println(result2[i]);
  23. }
  24. System.out.println( "len:"+result2.length); //13
  25. }

String replaceAll(String regex,String str)
将当前字符串中满足正则表达式的部分替换为给定的字符串内容

  1. public static void main(String[] args) {
  2. String str= "abc123def456ghi789jkl";
  3. /*
  4. * 将当前字符串中的数字部分替换为"#NUMBER"
  5. * */
  6. str=str.replaceAll( "\\d", "#NUMBER");
  7. System.out.println(str);
  8. str= "abc123def456ghi789jkl";
  9. /**
  10. * 将英文部分替换为#CHAR#
  11. * */
  12. str=str.replaceAll( "[a-zA-Z]+", "#CHAR#");
  13. System.out.println(str);
  14. str=str.replaceAll( "\\d+", "#NUMBER");
  15. System.out.println(str);
  16. }

下面是我写的移除字符串中所有空格的两个方法

  1. /**
  2. * 删除字符串中的所有空格
  3. * @author zc
  4. */
  5. public class T11RemoveAllSpace {
  6. public static void main(String[] args) {
  7. String s= " ab cdf dfd dfsf dsfdsfe dsfdsfsfg ";
  8. s=s.trim();
  9. String[] eachs=s.split( "\\s+");
  10. StringBuilder builder= new StringBuilder();
  11. for( int i= 0;i<eachs.length;i++){
  12. builder.append(eachs[i]);
  13. }
  14. s=builder.toString();
  15. System.out.println(s);
  16. }
  17. //这种方法简单
  18. @Test
  19. public void test01(){
  20.  String s= " ab cdf dfd dfsf dsfdsfe dsfdsfsfg ";
  21. s=s.replaceAll( "\\s+", "");
  22. System.out.println(s);
  23. }
  24. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值