典型的字符串处理代码(algs4)

                                                Java的字符串AP(部分)

Public   class       String

                               String()                                 创建一个空字符串

              Int             length()                               字符串长度

              Int             charAt(int i)                          第i个字符(从0开始计)

              Int             indexOf(String p)                p第一次出现的位置(如果没有则返回-1)                                   

              Int             indexOf(Strign p,int i)         p在i个字符后第一次出现的位置(如果没有则返回-1)                   

              String       contact(String t)                  把t附在该字符串末尾

              String       substring(int I,int j)            该字符串的子字符串(第i个字符到第j-1个字符)

              String       split(String delim)              使用delim分隔符切分字符串

              Int             compareTo (String t)          比较字符串

              Boolean  equals(String t)                  该字符串的值和t的值是否相同

              Int             hashCode()                        散列值

 

package string;
/*典型的字符串处理代码*/
public class StringManipulation
{
	/*判断字符串是否是一条回文*/
	public static boolean isPalindrome(String s)
	{
		for(int i=0;i<s.length()/2;i++)
			if(s.charAt(i)!=s.charAt(s.length()-1-i))
				return false;
		return true;
	}
	/*从一个命令行参数中提取文件名和扩展名*/
	public static String[] fileName1(String s)
	{
		String[] name=s.split("\\.");		/*使用\\转义*/
		return name;
	}
	public static String[] fileName2(String s)
	{
		int dot=s.indexOf(".");
		String[] name=new String[2];
		name[0]=s.substring(0, dot);
		name[1]=s.substring(dot+1, s.length());
		return name;
	}
	/*打印出标准输入中所有含有通过命令行指定字符串的行*/
	public static String appoint(String s)
	{
		String query="delete";
		if(s.contains(query))
			return s;
		return null;
	}
	
	/*以空白字符为分隔符从输入流中创建一个字符串数组*/
	public static String[] stringArray(String s)
	{
		String[] words =s.split("\\s+");  /*"\\s+"表示一个或多个制表符、空格、换行符或回车*/
		return words;
	}

	/*检查一个字符串数组中的元素是否已按照字母表顺序排列*/
	public static boolean isSorted(String[] a)
	{
		for(int i=0;i<a.length-1;i++)
			if(a[i].compareTo(a[i+1])>0)        /*Int compareTo (String t)  比较字符串*/
				return false;
		return true;
	}
}


package string;

import java.util.Scanner;

/*典型的字符串处理代码-测试用例*/
public class TestManipulation
{

	public static void main(String[] args)
	{
		int n;
		String s;
		boolean t;
		String[] a = null;
		Scanner sc=new Scanner(System.in);
		
		System.out.println("判断字符串是否是一条回文");
		s=sc.nextLine();
	    t=StringManipulation.isPalindrome(s);
		System.out.println(t);
		
		System.out.println("从一个命令行参数中提取文件名和扩展名");
		s=sc.nextLine();
	    a=StringManipulation.fileName1(s);
	    System.out.println("split(\"\\.\"):");		/*\表示后面跟一个符号*/
	    for(int i=0;i<a.length;i++)
	    	System.out.println(a[i]);
	    a=StringManipulation.fileName2(s);
	    System.out.println("indexOf(\".\"):");
	    for(int i=0;i<a.length;i++)
	    	System.out.println(a[i]);
	
	    System.out.println("打印出标准输入中所有含有通过命令行指定字符串的行");
	    System.out.println("请先输入命令行的个数");
	    n=sc.nextInt();
	    System.out.println("请输入命令行");
	    sc.nextLine();        /*读走换行符*/
	    for(int i=0;i<n;i++)
	    {
	    	s=sc.nextLine();
	    	if(StringManipulation.appoint(s)!=null)
	    		System.out.println(StringManipulation.appoint(s));
	    }
		System.out.println("以空白字符为分隔符从输入流中创建一个字符串数组");
		s=sc.nextLine();
	    a=StringManipulation.stringArray(s);
	    for(int i=0;i<a.length;i++)
	    	System.out.println(a[i]);
		
		System.out.println("检查一个字符串数组中的元素是否已按照字母表顺序排列");
		System.out.println("请先要输入的输入元素个数");
		n=sc.nextInt();
		a=new String[n];            /*重要!!*/
		System.out.println("请输入元素");
		sc.nextLine();  			/*读走换行符*/
		for(int i=0;i<n;i++)
			a[i]=sc.nextLine();
		t=StringManipulation.isSorted(a);
		System.out.println(t);
		
		sc.close();
	}

}


                                                                       



拓展阅读:

java中length,length(),size()区别

Java中字符串split() 的使用方法.没你想的那么简单

https://blog.csdn.net/qq_27093465/article/details/54910323


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值