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);
}
}

运行:

String类常用方法练习的更多相关文章

  1. JAVA中String类常用方法 I

    String类常用方法有: int length() -– 返回当前字符串的长度 int indexOf(int ch) -– 查找ch字符在该字符串中第一次出现的位置 int indexOf(Str ...

  2. JAVA String类常用方法

    一.String类String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创建 ...

  3. 菜鸡的Java笔记 第十四 String 类常用方法

    /*String 类常用方法    将所有String类的常用方法全部记下来,包括方法名称,参数作用以及类型    一个成熟的编程语言,除了它的语法非常完善之外,那么也需要提供有大量的开发类库     ...

  4. Java 中的 String 类常用方法

    字符串广泛应用在Java编程中,在Java中字符串属于对象,String 类提供了许多用来处理字符串的方法,例如,获取字符串长度.对字符串进行截取.将字符串转换为大写或小写.字符串分割等. Strin ...

  5. Java的String类常用方法

    一.构造函数 String(byte[ ] bytes):通过byte数组构造字符串对象. String(char[ ] value):通过char数组构造字符串对象. String(Sting or ...

  6. String类常用方法

    1.String类的特点,字符串一旦被初始化就不会被改变. 2.String对象定义的两种方式 ①String s = "affdf";这种定义方式是在字符串常量池中创建一个Str ...

  7. String类常用方法。

    一,字符数组与字符串. 一个字符串可以变成一个字符数组,同样,一个字符数组可以变成一个字符串. 在String类中提供了以下操作方法. 1)将字符串变成字符数组:public char[] toCha ...

  8. Java中String类常用方法(字符串中的子字符串的个数)

    重点内容 4种方法: 1.int indexOf(String str)返回第一次出现的指定子字符串在此字符串中的索引. 2.int indexOf(String str, int startInde ...

  9. java的异常抛出和String类常用方法

    一.异常抛出 异常是程序的异种非错误的意外情况,分为运行期异常(RuntimeException)和编译期异常(CheckedExcption) 处理异常可以用try——catch或自定义 impor ...

随机推荐

  1. [转载]C++之路起航——标准模板库(deque)

    转自:https://www.cnblogs.com/grhyxzc/p/5074061.html deque(双端队列):http://baike.baidu.com/link?url=JTvA2c ...

  2. 【依赖注入】Unity和Autofac

    全面理解ASP.NET Core依赖注入:https://www.cnblogs.com/jesse2013/p/di-in-aspnetcore.html MSDN:https://docs.mic ...

  3. source insight常用设置问题

    http://www.cnblogs.com/bluestorm/archive/2012/10/28/2743792.html

  4. Windows下的Jupyter Notebook 安装与自定义启动(图文详解)

    不多说,直接上干货! 前期博客 Windows下的Python 3.6.1的下载与安装(适合32bits和64bits)(图文详解) 这是我自定义的Python 的安装目录 (D:\SoftWare\ ...

  5. Rancher2.0中使用外置NFS存储部署Nginx实验

    目录: 1.环境准备工作 1.1 准备好Rancher2.0集群环境 1.2 准备好外部NFS服务器 2.Rancher2.0中使用NFS存储的方法 2.1 在集群中创建持久卷(PV) 2.2 在项目 ...

  6. 《Practical Vim》第八章:利用动作命令在文档中移动

    面向单词的移动 定义: Vim 提供了面向单词的动作命令,用于将光标正向/反向移动一个单词; 功能 命令 正向移动到下一单词开头 w 反向移动到上一单词的开头 b 正向移动到下一单词(当前单词)的结尾 ...

  7. Flask离线文档 --技术文档

    1.预览 2.文档下载 链接:Flask离线文档下载(v1.0.10)提取码:0x0x 

  8. 深入理解Plasma(三)Plasma MVP

    这一系列文章将围绕以太坊的二层扩容框架 Plasma,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等.本篇文章主要介绍 Plasma 的一个最小实现 Plasma MVP(Minima ...

  9. 微信小程序城市定位(百度地图API)

    概述 微信小程序提供一些API(地址)用于获取当前用户的地理位置等信息,但无论是wx.getLocation,还是wx.chooseLocation均没有单独的字段表示国家与城市信息,仅有经纬度信息. ...

  10. 如何设置IntelliJ IDEA智能感知支持Jsp内置对象

    一.问题: 在IntelliJ IDEA 新建jsp页面,想通过内置对象获取查询参数,比如:request.getParameter("id"),虽然手动输入后能够运行成功,但是智 ...