java String类常用方法练习小结

 更新时间:2017年02月16日 11:07:51   作者:沐一  
本文主要介绍了java String类常用方法的例子,具有很好的参考价值,下面跟着小编一起来看下吧

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。

字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。

String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、

创建字符串副本并将所有字符全部转换为大写或小写。

String类是最常用的类之一,下面就通过几个练习,熟悉String类中的提供的重要方法。

字符串练习一

给定一个字符串数组,按照字典顺序,进行大小写排序

思路:

1.对数组排序,可以用选择排序、冒泡排序等等。

2.for循环嵌套,比较,交换位置。

3.不同之处,以前比较的是数字,用的是比较运算符;

现在比较的是字符串对象,应该使用compareTo方法。

public class StringTest_1
{
 //对字符串数组进行排序
 public static void stringSort(String[] arr)
 {
 //采用冒泡排序
 for(int i=0;i<arr.length-1;i++)
 {
  for(int j=0;j<arr.length-1-i;j++)
  {
  //用compareTo方法进行字符串比较
  if(arr[j].compareTo(arr[j+1])>0)
  {
   String temp=arr[j];
   arr[j]=arr[j+1];
   arr[j+1]=temp;
  }
  }
 }
 showArray(arr);
 }
 //定义方法,以[str1,str2,str3]的格式来打印数组
 public static void showArray(String[] arr)
 {
 System.out.print("[");
 for(int i=0;i<arr.length;i++)
 {
  if(i!=arr.length-1)
  System.out.print(arr[i]+",");
  else
  {
  System.out.print(arr[i]+"]\n");
  }
 }
 }
 public static void main(String[] args) 
 {
 String arr[]={"nba","abc","cba","zz","qq","haha"};
 //打印数组
 showArray(arr);
 //对数组进行排序并输出
 stringSort(arr);
 }
}

运行:

字符串练习二

一个子串在字符串中出现的次数

思路:

1.用indexOf方法获取子串在字符串中第一次出现的位置index

2.再用indexOf方法获取以(index+子串长度)为起始的剩下的字符串中子串出现的位置,直到字符串中不再包含子串。可用while循环实现。

3.每次找到后用计数器记录即可。

public class StringTest_2 
{
 public static void main(String[] args) 
 {
 String str="abcqwabcedcxabcuabcjkabcnmbabc";
 //String str=null;
 try
 {
  int count=countChildStr(str,"abc");
  System.out.println("abc在"+str+"中出现的次数为:"+count);
 }
 catch (NullPointerException ne)
 {
  System.out.println(ne);
 }
 catch(RuntimeException re)
 {
  System.out.println(re);
 }
 }
 public static int countChildStr(String str,String key)
 {
 if(str==null||key==null)
 {
  throw new NullPointerException("空指针异常,源字符串和子串都不能为NULL");
 }
 if(key=="")
 {throw new RuntimeException("调用不合法,子串要有内容");}
 int count=0,index=0;
 while((index=str.indexOf(key,index))!=-1)
 {
  count++;
  index+=key.length();
 }
 return count;
 }
}

字符串练习三

找到两个字符串的最大公共子串

思路:

1.判断较长字符串中是否包含较短字符串,如果包含,则较短字符串则为最大公共子串。

2.如果不包含,就对较短字符串以长度递减的方式取子串,去较长字符串中判断是否包含,如果包含就找到了,不用再找了。

3.重点:对字符串以长度递减的方式取子串

public class StringTest_3
{
 public static void main(String[] args) 
 {
 //创建两个不为空的字符串
 String str1="abxczwsxcvdfas";
 //String str1=null;
 String str2="ghwsxcvxcdbgthnnnrfqwe";
 try
 {
  String str=searchMaxCommonStr(str1,str2);
  System.out.println("最大公共子串是:"+str);
 }
 catch (NullPointerException ne)
 {
  System.out.println(ne);
 }
 }
 public static String searchMaxCommonStr(String str1,String str2)
 {
 if(str1==null||str2==null)
  throw new NullPointerException("空指针异常,参数不能为Null");
 //断定较长字符串和较短字符串
 String max=(str1.length()>str2.length())?str1:str2;
 String min=(str1.equals(max))?str2:str1;
 //按长度递减的方式取子串,从min.length~~1
 for(int i=min.length();i>0;i--)
 {
  for(int x=0,y=x+i;y<min.length();x++,y++)
  {
  String childStr=min.substring(x,y);
  //若较长字符串中包含此子串,则找到了
  //否则继续找
  if(max.contains(childStr))
   return childStr;
  }
 }
 return null;
 }
}

运行:

字符串练习四

写一个和trim功能相同的方法

思路:

1.定义两个变量,用来存储两个角标

2.分别从头和尾遍历字符串,直到找到第一个不为空格的字符

3.截取字符串

public class StringTest_4
{
 public static void main(String[] args) 
 {
 String str=" abc ws ";
 str=myTrim(str);
 System.out.println(str);
 }
 public static String myTrim(String s)
 {
 int begin=0,end=s.length()-1;
 //从头遍历
 while(begin<=end && s.charAt(begin)==' ')
 {
  begin++;
 }
 //从尾部遍历
 while(begin<=end && s.charAt(end)==' ')
 {
  end--;
 }
 return s.substring(begin,end+1);
 }
}

运行:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

相关文章

  • SpringBoot通过Filter实现整个项目接口的SQL注入拦截详解

    SpringBoot通过Filter实现整个项目接口的SQL注入拦截详解

    这篇文章主要介绍了SpringBoot通过Filter实现整个项目接口的SQL注入拦截详解,SQL注入是比较常见的网络攻击方式之一,在客户端在向服务器发送请求的时候,sql命令通过表单提交或者url字符串拼接传递到后台持久层,最终达到欺骗服务器执行恶意的SQL命令,需要的朋友可以参考下
    2023-12-12
  • SpringBoot整合LDAP的流程分析

    SpringBoot整合LDAP的流程分析

    这篇文章主要介绍了SpringBoot整合LDAP的流程分析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Java结合EasyExcel构建复杂多级表头

    Java结合EasyExcel构建复杂多级表头

    在Java开发中,处理Excel文件时,构建复杂的多级表头是一项常见且具有挑战性的任务,下面小编就来和大家聊聊如何通过自定义方法实现多级表头的构建吧
    2025-03-03
  • Java Synchronized的偏向锁详细分析

    Java Synchronized的偏向锁详细分析

    synchronized作为Java程序员最常用同步工具,很多人却对它的用法和实现原理一知半解,以至于还有不少人认为synchronized是重量级锁,性能较差,尽量少用。但不可否认的是synchronized依然是并发首选工具,本文就来详细讲讲
    2023-04-04
  • springSecurity实现简单的登录功能

    springSecurity实现简单的登录功能

    这篇文章主要为大家详细介绍了springSecurity实现简单的登录功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • 详解Java中final的用法

    详解Java中final的用法

    本文主要介绍了Java中final的使用方法,final是java的关键字,本文就详细说明一下它的使用方法,需要的朋友可以参考下
    2015-08-08
  • SpringBoot详解如何进行整合Druid数据源

    SpringBoot详解如何进行整合Druid数据源

    Druid是阿里开发的一款开源的数据源,被很多人认为是Java语言中最好的数据库连接池,本文主要介绍了SpringBoot整合Druid数据源的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • java实现十六进制字符unicode与中英文转换示例

    java实现十六进制字符unicode与中英文转换示例

    当需要对一个unicode十六进制字符串进行编码时,首先做的应该是确认字符集编码格式,在无法快速获知的情况下,通过一下的str4all方法可以达到这一目的
    2014-02-02
  • 若依前后端打成一个JAR包部署的完整步骤

    若依前后端打成一个JAR包部署的完整步骤

    这篇文章主要介绍了如何将若依前后端分离项目打包成jar,不使用nginx转发,前端修改了路由模式和环境变量配置,后端增加了依赖、配置了Thymeleaf和访问路径,需要的朋友可以参考下
    2025-01-01
  • 关于后缀表达式的java实现过程

    关于后缀表达式的java实现过程

    这篇文章主要介绍了关于后缀表达式的java实现过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论