`
h2626819
  • 浏览: 45296 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

常用的java函数(二) 常用字符串处理

阅读更多



  /**
   * 分割字符串
   * 
   * @param str String 原始字符串
   * @param splitsign String 分隔符
   * @return String[] 分割后的字符串数组
   */
  public static String[] split(String str, String splitsign) {
    int index;
    if (str == null || splitsign == null)
      return null;
    ArrayList al = new ArrayList();
    while ((index = str.indexOf(splitsign)) != -1) {
      al.add(str.substring(0, index));
      str = str.substring(index + splitsign.length());
    }
    al.add(str);
    return (String[]) al.toArray(new String[0]);
  }

  /**
   * 替换字符串
   * 
   * @param from String 原始字符串
   * @param to String 目标字符串
   * @param source String 母字符串
   * @return String 替换后的字符串
   */
  public static String replace(String from, String to, String source) {
    if (source == null || from == null || to == null)
      return null;
    StringBuffer bf = new StringBuffer("");
    int index = -1;
    while ((index = source.indexOf(from)) != -1) {
      bf.append(source.substring(0, index) + to);
      source = source.substring(index + from.length());
      index = source.indexOf(from);
    }
    bf.append(source);
    return bf.toString();
  }

  /**
   * 替换字符串,能能够在HTML页面上直接显示(替换双引号和小于号)
   * 
   * @param str String 原始字符串
   * @return String 替换后的字符串
   */
  public static String htmlencode(String str) {
    if (str == null) {
      return null;
    }

    return replace("\"", "&quot;", replace("<", "&lt;", str));
  }

  /**
   * 替换字符串,将被编码的转换成原始码(替换成双引号和小于号)
   * 
   * @param str String
   * @return String
   */
  public static String htmldecode(String str) {
    if (str == null) {
      return null;
    }

    return replace("&quot;", "\"", replace("&lt;", "<", str));
  }

  private static final String _BR = "<br/>";

  /**
   * 在页面上直接显示文本内容,替换小于号,空格,回车,TAB
   * 
   * @param str String 原始字符串
   * @return String 替换后的字符串
   */
  public static String htmlshow(String str) {
    if (str == null) {
      return null;
    }

    str = replace("<", "&lt;", str);
    str = replace(" ", "&nbsp;", str);
    str = replace("\r\n", _BR, str);
    str = replace("\n", _BR, str);
    str = replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;", str);
    return str;
  }

  /**
   * 返回指定字节长度的字符串
   * 
   * @param str String 字符串
   * @param length int 指定长度
   * @return String 返回的字符串
   */
  public static String toLength(String str, int length) {
    if (str == null) {
      return null;
    }
    if (length <= 0) {
      return "";
    }
    try {
      if (str.getBytes("GBK").length <= length) {
        return str;
      }
    } catch (Exception ex) {
    }
    StringBuffer buff = new StringBuffer();

    int index = 0;
    char c;
    length -= 3;
    while (length > 0) {
      c = str.charAt(index);
      if (c < 128) {
        length--;
      } else {
        length--;
        length--;
      }
      buff.append(c);
      index++;
    }
    buff.append("...");
    return buff.toString();
  }

  /**
   * 判断是否为整数
   * 
   * @param str 传入的字符串
   * @return 是整数返回true,否则返回false
   */
  public static boolean isInteger(String str) {
    Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
    return pattern.matcher(str).matches();
  }

  /**
   * 判断是否为浮点数,包括double和float
   * 
   * @param str 传入的字符串
   * @return 是浮点数返回true,否则返回false
   */
  public static boolean isDouble(String str) {
    Pattern pattern = Pattern.compile("^[-\\+]?[.\\d]*$");
    return pattern.matcher(str).matches();
  }

  /**
   * 判断输入的字符串是否符合Email样式.
   * 
   * @param str 传入的字符串
   * @return 是Email样式返回true,否则返回false
   */
  public static boolean isEmail(String str) {
    Pattern pattern = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
    return pattern.matcher(str).matches();
  }

  /**
   * 判断输入的字符串是否为纯汉字
   * 
   * @param str 传入的字符窜
   * @return 如果是纯汉字返回true,否则返回false
   */
  public static boolean isChinese(String str) {
    Pattern pattern = Pattern.compile("[\u0391-\uFFE5]+$");
    return pattern.matcher(str).matches();
  }

  /**
   * 是否为空白,包括null和""
   * 
   * @param str
   * @return
   */
  public static boolean isBlank(String str) {
    return str == null || str.trim().length() == 0;
  }

  /**
   * 判断是否为质数
   * 
   * @param x
   * @return
   */
  public static boolean isPrime(int x) {
    if (x <= 7) {
      if (x == 2 || x == 3 || x == 5 || x == 7)
        return true;
    }
    int c = 7;
    if (x % 2 == 0)
      return false;
    if (x % 3 == 0)
      return false;
    if (x % 5 == 0)
      return false;
    int end = (int) Math.sqrt(x);
    while (c <= end) {
      if (x % c == 0) {
        return false;
      }
      c += 4;
      if (x % c == 0) {
        return false;
      }
      c += 2;
      if (x % c == 0) {
        return false;
      }
      c += 4;
      if (x % c == 0) {
        return false;
      }
      c += 2;
      if (x % c == 0) {
        return false;
      }
      c += 4;
      if (x % c == 0) {
        return false;
      }
      c += 6;
      if (x % c == 0) {
        return false;
      }
      c += 2;
      if (x % c == 0) {
        return false;
      }
      c += 6;
    }
    return true;
  }
    /**
     * 全角字符转半角字符
     * 
     * @param QJStr
     * @return String
     */
    public static final String QJToBJChange(String QJStr)
    {
        char[] chr = QJStr.toCharArray();
        String str = "";
        for (int i = 0; i < chr.length; i++)
        {
            chr[i] = (char) ((int) chr[i] - 65248);
            str += chr[i];
        }
        return str;
    }
    /**
     * 去掉字符串中重复的子字符串
     * 
     * @param str
     * @return String
     */
    private static String removeSameString(String str)
    {
        Set<String> mLinkedSet = new LinkedHashSet<String>();
        String[] strArray = str.split(" ");
        StringBuffer sb = new StringBuffer();

        for (int i = 0; i < strArray.length; i++)
        {
            if (!mLinkedSet.contains(strArray[i]))
            {
                mLinkedSet.add(strArray[i]);
                sb.append(strArray[i] + " ");
            }
        }
        System.out.println(mLinkedSet);
        return sb.toString().substring(0, sb.toString().length() - 1);
      }
//过滤特殊字符
public static String encoding(String src){
        if (src==null)
            return "";
        StringBuilder result=new StringBuilder();
        if (src!=null){
            src=src.trim();
            for (int pos=0;pos<src.length();pos++){
                switch(src.charAt(pos)){
                    case '\"':result.append("&quot;");break;
                    case '<':result.append("&lt;");break;
                    case '>':result.append("&gt;");break;
                    case '\'':result.append("&apos;");break;
                    case '&':result.append("&amp;");break;
                    case '%':result.append("&pc;");break;
                    case '_':result.append("&ul;");break;
                    case '#':result.append("&shap;");break;
                    case '?':result.append("&ques;");break;
                    default:result.append(src.charAt(pos));break;
                }
            }
        }
        return result.toString();
    }
    
//反过滤特殊字符
    public static String decoding(String src){
        if (src==null)
            return "";
        String result=src;
        result=result.replace("&quot;", "\"").replace("&apos;", "\'");
        result=result.replace("&lt;", "<").replace("&gt;", ">");
        result=result.replace("&amp;", "&");
        result=result.replace("&pc;", "%").replace("&ul", "_");
        result=result.replace("&shap;", "#").replace("&ques", "?");
        return result;
    }

/** 
    *判断任意一个整数是否素数 
    *@paramn 
    *@return boolean 
    */ 
    public boolean isPrimes(int n) 
    { 
      for (int i = 2; i <= Math.sqrt(n); i++) { 
          if(n%i==0) 
          { 
              return false; 
          } 
      } 
      return true; 
    } 


分享到:
评论
1 楼 aixinnature 2009-01-12  
不错,收藏了

相关推荐

    java常用字符串函数集锦

    java中字符串常用函数 看了就知道 很好用 速查

    Java中常用函数汇总

    Java中常用函数汇总,汇总了acm java的部分代码!譬如:lastIndexOf()这个方法是在字符串中查找第一次出现某个特定字符串的位置,方向是从后向前,找到之后则返回特定字符的索引,找不到匹配的字符串则返回-1。

    Java字符串逗号分割实现.pptx.pptx

    Java中有多种将字符串转换为列表的方法,其中最常用的是使用split()函数和Java8的Stream API。 split()函数的使用 split()函数可以将字符串按照指定的分隔符进行分割,返回一个字符串数组,我们可以通过Arrays....

    js常用验证函数库 提供常用的验证函数,如日期、身份证、数字等,另外提供了一些java中有但js中没有提供的函数,如trim(),取中文字符串长度等

    提供常用的验证函数,如日期、身份证、数字等,另外提供了一些java中有但js中没有提供的函数,如trim(),取中文字符串长度等

    java日期格式函数的用法与实例

    几个关于java日期的常用的函数的实例 得到系统当前时间 字符串转化为java.util.Date 获得给定日期的年份 获得给定日期的当月的天数等

    java中字符串的所有用法

    java字符串中的所有常用方法,基本包含和所有函数与语句用法

    mysql 常用函数

    doc的文件类型: mysql的常用函数 数学函数 二、字符串函数 二、字符串函数  

    asp常用字符串处理库-适合初学者

    1、MyFormatDatetime 时间格式自定义 2、Cls_charKeySplit 一段文本自动分割成独立的字符串(非常适合自动关键词录入处理) 3、CreateRndNumber 创建随机数据 ...这一套字符串处理函数解决了文章系统的几乎所有需求。

    数学函数、字符和字符串.pptx

    能够使用String的常用方法处理字符串 会使用包装类进行字符串和数字之间的转换 会使用System.out.printf()方法格式 化输出;1.Math类及常用数学 方法 2.字符类型数据和操作 3.String类 4.格式化输出;Math类包含完成...

    php开发经验总结,时间,字符串,文件,图像等常用的处理函数.zip

    包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的...

    string类的常用方法.pdf

    string类是Java中的一种数据类型,用于表示文本字符串。它是不可变的,也就是说一旦创建...字符串类在Java中广泛应用于各种场景,如文本处理、字符串匹配和格式化等。它是一种非常重要的数据类型,值得深入学习和掌握。

    javascript字符串对象常用api函数小结(连接,替换,分割,转换等)

    本文实例讲述了javascript字符串对象常用api函数。分享给大家供大家参考,具体如下: 1. concat(str1,str2,···) 连接字符串 2. indexOf(str,start) 返回 str 在字符串中首次出现的位置 var str = "hello world";...

    java程序设计实验指导代码

    8.4 实验3 字符串的比较和查找最长子串 8.5 实验4 单词逆向输出问题 8.6 实验5 ISBN书号校验问题 第9章 Applet小应用程序 9.1 预备知识 9.2 实验1 Applet生命周期 9.3 实验2 Applet的参数提取 9.4 实验3 鼠标...

    Java开发常用的方法

    资源为Java源代码,内含系列常用静态方法,可以直接拿来使用,如:拼合一维数组为字符串;产生在start和end之间的num个随机整数,返回值存在HashMap中;获取当前时间,返回时间格式(如果调用参数为true时返回yyyy-MM...

    javascript中数组(Array)对象和字符串(String)对象的常用方法总结

    本文实例总结了javascript中数组(Array)对象和字符串(String)对象的常用方法。分享给大家供大家参考,具体如下: 综述:笔者经常将数组的方法和字符串的方法混淆,这里写篇日志,做个区分 1.字符串对象 String是...

    Java基础知识点总结.docx

    &lt; java.lang &gt;StringBuffer字符串缓冲区:★★★☆ 73 &lt; java.lang &gt;StringBuilder字符串缓冲区:★★★☆ 74 基本数据类型对象包装类★★★☆ 75 集合框架:★★★★★,用于存储数据的容器。 76 &lt; java.util &gt; ...

    Java开发技术大全(500个源代码).

    ArrayString.java 字符串数组 assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维...

    java 算法

    多线程的世界时钟,显示巴黎,罗马,上海时间, AWT界面,Java日期格式化及其使用例子,几个常用方法,判断字符是否属于中文,异常处理类,去掉字符串中重复的子字符串,将指定byte数组以16进制的形式打印到控制台,...

    java经典面试题目-面经-java-Java语言的进阶概念-常用的库和框架-并发编程-网络编程-Web开发-面经

    Java中如何实现字符串的连接? 什么是Java中的StringBuilder和StringBuffer?它们之间有什么区别? 什么是Java中的Lambda表达式?它的作用和使用场景是什么? 什么是Java中的函数式接口?列举一些常见的函数式...

    java 课程 实验

    3. 编写一个方法,返回一个double型的二维数组,数组中的元素通过解析字符串参数获得。例如,字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为: d[0,0] = 1.0 d[0,1] = 2.0 d[1,0] = 3.0 d[1,1] = 4.0 d[1,2] = ...

Global site tag (gtag.js) - Google Analytics