Java 常用字符操作

简介:

Java 中常用的字符串操作

1,判断字符是否是普通字符(a-z,A-Z,0-9,下划线_,英文句点.)

必须是英文大小写,数字,下划线,英文句号

Java代码   收藏代码
  1. /*** 
  2.      * 是否是普通字符(a-z,A-Z,0-9,下划线_,英文句点.) 
  3.      * @param c 
  4.      * @return 
  5.      */  
  6.     public  static boolean isWordChar(char c){  
  7.         int number22=(int)c;  
  8.         if((number22>=97/*a*/ && number22<=122/*z*/)  
  9.                 ||(number22>=65/*A*/ && number22<=90/*Z*/)  
  10.                 ||(number22>=48/*0*/ && number22<=57/*9*/)  
  11.                 ||number22==95/*下划线*/  
  12.                 ||number22==46/*英文的句点.*/){  
  13. //          System.out.println("is word");  
  14.             return true;  
  15.         }else{  
  16.             return false;  
  17.         }  
  18.     }  

 测试:

Java代码   收藏代码
  1. @Test  
  2.     public void tst2(){  
  3.         char c='_';  
  4.         System.out.println(isWordChar(c));  
  5.         Assert.assertEquals(true, isWordChar(c));  
  6.           
  7.         c=',';  
  8.         Assert.assertEquals(false, isWordChar(c));  
  9.           
  10.         c='a';  
  11.         Assert.assertEquals(true, isWordChar(c));  
  12.           
  13.         c='z';  
  14.         Assert.assertEquals(true, isWordChar(c));  
  15.           
  16.         c='A';  
  17.         Assert.assertEquals(true, isWordChar(c));  
  18.           
  19.         c='Z';  
  20.         Assert.assertEquals(true, isWordChar(c));  
  21.           
  22.         c='0';  
  23.         Assert.assertEquals(true, isWordChar(c));  
  24.           
  25.         c='9';  
  26.         Assert.assertEquals(true, isWordChar(c));  
  27.           
  28.         c=' ';  
  29.         Assert.assertEquals(false, isWordChar(c));  
  30.           
  31.         c='.';  
  32.         Assert.assertEquals(true, isWordChar(c));  
  33.     }  

 2,判断字符串是否是普通字符

必须以字母开头,可以包含(a-z,A-Z,0-9,下划线_,英文句点.),但是不能以句点结尾,不能连续两个句点

Java代码   收藏代码
  1. /*** 
  2.      * 必须以字母开头,可以包含(a-z,A-Z,0-9,下划线_,英文句点.),但是不能以句点结尾,不能连续两个句点 
  3.      * @param input 
  4.      * @return 
  5.      */  
  6.     public static boolean isWord(String input){  
  7.         char c=input.charAt(0);  
  8.         if(!isWordChar(c)){  
  9.             System.out.println("不是单词");  
  10.             return false;  
  11.         }  
  12.           
  13.         int number22=(int)c;  
  14.         if((number22>=48/*0*/ && number22<=57/*9*/)  
  15.                 ||number22==95/*下划线*/||number22==46/*英文的句点.*/){  
  16.             return false;  
  17.         }  
  18.         int length22=input.length();  
  19.         int lastChar =(int)input.charAt(length22-1);//最后一个char  
  20.         if(lastChar==46/*英文的句点.*/){  
  21.             return false;  
  22.         }  
  23.         for(int j=1;j<length22;j++){  
  24.             if(!isWordChar(input.charAt(j))){  
  25.                 return false;  
  26.             }  
  27.         }  
  28.         //不能有连续两个英文句点  
  29.         if(SystemHWUtil.findStr3(input, SystemHWUtil.ENGLISH_PERIOD+SystemHWUtil.ENGLISH_PERIOD)>0){  
  30.             System.out.println("不能有连续两个英文句点");  
  31.             return false;  
  32.         }  
  33.         return true;  
  34.     }  

 测试:

Java代码   收藏代码
  1. @Test  
  2.     public void tetst2(){  
  3.         String input="abc,";  
  4.         System.out.println(isWord(input));  
  5.         Assert.assertEquals(false, isWord(input));  
  6.           
  7.         input="abc.a";  
  8.         Assert.assertEquals(true, isWord(input));  
  9.           
  10.         input="1abc,";  
  11.         Assert.assertEquals(false, isWord(input));  
  12.           
  13.         input="a111bc,";  
  14.         Assert.assertEquals(false, isWord(input));  
  15.           
  16.         input="ab.a.c";  
  17.         Assert.assertEquals(true, isWord(input));  
  18.           
  19.         input="ab..c";  
  20.         Assert.assertEquals(false, isWord(input));  
  21.     }  

 3,判断是否是空字符

空字符包括:(空格,Tab,换行,回车)

Java代码   收藏代码
  1. /*** 
  2.      * 是否是空格(空格,Tab) 
  3.      * @param c 
  4.      * @return 
  5.      */  
  6.     public static boolean isBlank(char c) {  
  7.         int number22 = (int) c;  
  8. //      System.out.println(number22);  
  9.         if(number22==32/*空格*/||number22==9/*Tab*/  
  10.                 ||number22==10/*\n*/||number22==13/*\r*/){  
  11.             return true;  
  12.         }  
  13.         return false;  
  14.     }  

 测试:

Java代码   收藏代码
  1. @Test  
  2.     public void test444(){  
  3.         char c='\n';  
  4.         System.out.println((int)c);  
  5.         System.out.println(OAUtil.isBlank(c));  
  6.         Assert.assertEquals(true, OAUtil.isBlank(c));  
  7.           
  8.         c = '.';  
  9.         Assert.assertEquals(false, OAUtil.isBlank(c));  
  10.           
  11.         c = ' ';  
  12.         Assert.assertEquals(true, OAUtil.isBlank(c));  
  13.           
  14.         c = '   '/*Tab*/;  
  15.         Assert.assertEquals(true, OAUtil.isBlank(c));  
  16.     }  

 

 

4,搜索字符串,若找到,则返回当时的索引,否则返回-1

Java代码   收藏代码
  1. /*** 
  2.      * 当发现keyWord的时候读到的index,<br>如果没有发现,则始终返回-1 
  3.      * @param srcText 
  4.      * @param keyWord 
  5.      * @param pos 
  6.      * @return 
  7.      */  
  8.     public static int findReadLength(String srcText, String keyWord, int pos) {  
  9.         int i, j/*, k = 0*/;  
  10.         i = pos;  
  11.         j = 0;  
  12.         while (i < srcText.length() && j < keyWord.length()) {  
  13.             if (srcText.charAt(i) == keyWord.charAt(j)) {  
  14.                 ++i;  
  15.                 ++j;  
  16.                 if (j == keyWord.length()) {  
  17.   
  18.                     return i;  
  19.                 }  
  20.             } else {  
  21.                 i = i - j + 1;  
  22.                 j = 0;  
  23.             }  
  24.         }  
  25.         return SystemHWUtil.NEGATIVE_ONE;  
  26.     }  

 测试:

Java代码   收藏代码
  1. @Test  
  2.     public void test_findReadLength(){  
  3.         String srcText="abc";  
  4.         System.out.println(SystemHWUtil.findReadLength(srcText, "abc"0));  
  5.         Assert.assertEquals(3, SystemHWUtil.findReadLength(srcText, "abc"0));  
  6.           
  7.         srcText=" abc";  
  8.         Assert.assertEquals(4, SystemHWUtil.findReadLength(srcText, "abc"0));  
  9.           
  10.         srcText=" abcabc";  
  11.         Assert.assertEquals(4, SystemHWUtil.findReadLength(srcText, "abc"0));  
  12.           
  13.         srcText=" ab c";  
  14.         Assert.assertEquals(-1, SystemHWUtil.findReadLength(srcText, "abc"0));  
  15.           
  16.         srcText="aababbabc";  
  17.         Assert.assertEquals(9, SystemHWUtil.findReadLength(srcText, "abc"0));  
  18.     }  
相关文章
|
3月前
|
JavaScript Java Android开发
在cmd中运行javac编译java文件报错: 编码GBK的不可映射字符、 非法字符: \65279
在cmd中运行javac编译java文件报错: 编码GBK的不可映射字符、 非法字符: \65279
52 1
|
1月前
|
Java
Java——编码GBK的不可映射字符
Java——编码GBK的不可映射字符
25 1
|
21天前
|
存储 Java Apache
|
2月前
|
Java API 索引
Java中的字符串与字符操作详解
Java中的字符串与字符操作详解
|
3月前
|
Java
JAVA工具类匹配重复或者连续的字符和符号
JAVA工具类匹配重复或者连续的字符和符号
|
3月前
|
Java Serverless
Java字符个数统计代码
Java字符个数统计代码
59 6
|
2月前
|
Java API 索引
Java中的字符串与字符操作详解
Java中的字符串与字符操作详解
|
4月前
|
存储 Java
java使用pdfbox 3.0版本删除pdf文件中指定字符所在行,生成新的pdf文件
【5月更文挑战第25天】java使用pdfbox 3.0版本删除pdf文件中指定字符所在行,生成新的pdf文件
447 1
|
4月前
|
Java
Java集合类ArrayList应用 | 如何在字符串s1中删除有在字符串s2出现的字符?
这是一个关于Java编程面试题的摘要,题目要求从字符串s1中删除s2中存在的字符。解题思路包括使用ArrayList或StringBuilder实现。ArrayList实现时,遍历s1,如果字符不在s2中,则添加到ArrayList;StringBuilder实现有两种方法,一是新建StringBuilder并追加s1,然后遍历删除s2中的字符,二是直接在原地修改s1的StringBuilder对象。代码示例中展示了这些方法。
43 3