您的位置:首页 > 编程语言

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

2017-08-05 23:25 225 查看
                                                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
;            /*重要!!*/
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()区别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息