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.     }  
时间: 2024-09-27 01:22:32

Java 常用字符操作的相关文章

java常用工具类之Excel操作类及依赖包下载_java

依赖包下载:http://xiazai.jb51.net/201407/tools/java-excel-dependency(jb51.net).rar Excel工具类ExcelUtil.java源码: package com.itjh.javaUtil; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStr

详解JAVA常用的时间操作【实用】_java

项目中经常有对时间进行处理的需求,下面是一些常用的操作整理,方便以后再次使用以及做相关复习. 1.字符串转换为日期 /** * 字符串转换为日期 * @param dateStr 需要转换的日期 * @param dateFormat 日期格式yyyy-MM-dd/yyyy-MM-dd HH:mm:ss */ public static Date toDate(String dateStr, SimpleDateFormat dateFormat) throws ParseException{

java中 IO 常用IO操作类继承结构分析_java

IO 常用IO操作类继承结构IO 字符流 Reader(源) BufferedReader LineNumberReaderInputStreamReader FileReader(字节流通向字符流的桥梁)      StringReader        Writer(目的) BufferedWriter      OutputStreamWriter FileWriter(字符流通向字节流的桥梁)      StringWriter 空      PrintWriter 空      字节流

jQuery原理系列-常用Dom操作详解_jquery

1. 事件绑定$(el).bind ie使用attachEvent,其它浏览器使用addEventListener,不同的是ie多了个on前缀,this绑定在window上,需要用call和apply修正this 的指向. if (element.addEventListener) { element.addEventListener(type, handler, useCapture); } else { if (element.attachEvent) { element.attachEve

总结Java常用到的六个加密技术和代码_java

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容.大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密). 双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文.而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是加密的一种,应该算是摘要算法吧. 具体来说: 系统必须可用,非数学上不可译码. 系统不一定要保密,可以轻

JAVA里字符编码的探索与理解

编码 今天终于把JAVA里一个比较头痛的问题--字符编码弄清晰了,所以写一篇文章来纪念一下,也为大家提供一点自己的心得. 众所周知,JAVA为了国际通用,用的是UNICODE来保存里面的字符.而UNICODE只是一个种字符集,字符的存储和表示要用到一定的字符编码格式,而与UNICODE对应的字符编码格式就是我们常看到的UTF-8,UTF-16等等,而UTF-8是最常用的,所以人们常常把它和UNICODE等同起来(我以前就是这样的),这在某些情况下是没有错的,但这样的理解在JAVA里就会产生一些混

Google的Java常用类库 Guava

Guava 中文是石榴的意思,该项目是 Google 的一个开源项目,包含许多 Google 核心的 Java 常用库. 1. 基本工具 [Basic utilities] 让使用Java语言变得更舒适 1.1 使用和避免null:null是模棱两可的,会引起令人困惑的错误,有些时候它让人很不舒服.很多Guava工具类用快速失败拒绝null值,而不是盲目地接受 1.2 前置条件: 让方法中的条件检查更简单 1.3 常见Object方法: 简化Object方法实现,如hashCode()和toSt

Ruby常用文件操作代码实例

  这篇文章主要介绍了Ruby常用文件操作代码实例,如新建文件.输出文件内容.IO操作.输出文件路径.stringio使用等内容,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 6

java常用第三方软件包大全

  java常用第三方软件包 网上收集的一些常用Java开发的第三方软件包,供大家参考 1.Apache POI 处理office文档用到的2. IText PDF操作类库 3.Java Base64 Base64编码类库 4.Commons-lang 对应java sdk里面的java.lang包,用来简化基本工具类操作 5.pingyin4j 中文转拼音库 6.Commons-IO,处理IO的工具包 7.Commons-beanutils 用来处理javaBean类的反射,内省的工具包 8.