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中字符串split() 的使用方法.没你想的那么简单
https://blog.youkuaiyun.com/qq_27093465/article/details/54910323