`
tjmzgn
  • 浏览: 160043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA字符串常用写法

    博客分类:
  • JAVA
阅读更多
/**
* Title:        Java Bean 工具
* Description:
* Copyright:    Copyright (c) 2001
* @author
* @version 1.0
*/
import java.util.*;
import java.util.regex.Pattern;

public class StrTools {
  /**
   * 分割字符串
   *
   * @param str String 原始字符串
   * @param splitsign String 分隔符
   * @return String[] 分割后的字符串数组
   */
  @SuppressWarnings("unchecked")
  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;
  }

  public static void main(String[] args) {
    String[] numbers = { "12345", "-12345", "123.45", "-123.45", ".12345", "-.12345", "a12345", "12345a", "123.a45" };
    for (String str : numbers) {
      System.out.println(str + "=" + isInteger(str) + " " + isDouble(str));
    }

    String[] emails = { "1@2.com", "1.2@3.com", "1@3.4.5.com" };
    for (String str : emails) {
      System.out.println(str + "=" + isEmail(str));
    }
    String[] chineses = { "中国", "1中国", "中国1", "1中国2", "中1国" };
    for (String str : chineses) {
      System.out.println(str + "=" + isChinese(str));
    }
  }
}

分享到:
评论

相关推荐

    Java常用字符串方法小结

    在Java编程语言中,字符串是极其重要且常用的元素。Java提供了两种主要的字符串类:`String` 和 `StringBuffer`(或其线程安全的版本`StringBuilder`)。这两个类提供了丰富的功能来创建、操作和管理字符串。 首先...

    Java 替换字符串中的回车换行符的方法

    在Java编程语言中,处理字符串时经常会遇到需要替换或去除回车换行符的情况,这在处理文本数据、日志文件或用户输入时尤其常见。回车换行符是文本中用于表示新行的特殊字符组合,通常由`\n`(换行符)和`\r`(回车符...

    Net与Java常用代码写法对比.pdf

    本篇主要对比了这两种语言在字符串操作、类型转换、枚举处理以及一些其他常见代码写法上的差异。 **1. 字符串操作** 在字符串处理方面,Net 和 Java 提供了相似但不尽相同的方法。例如: - Net 中判断字符串是否...

    Net与Java常用代码写法对比.docx

    在.NET和Java编程中,有一些常见的代码写法差异,这些差异主要体现在语法、类型转换、枚举处理、字符串操作以及泛型集合的使用上。以下是对这两种语言在这些方面的对比和详细解释: 1. **字符串操作** - .NET中的`...

    java路径两种写法.docx 新手资源,小白学习使用,java学习使用

    本文将深入探讨Java中两种常用的路径写法:“/”(正斜杠)与“\”(反斜杠),并结合实例来阐述它们的特点及应用场景。 #### 二、路径写法概述 Java支持两种路径分隔符:“/”与“\”,它们分别代表了不同操作...

    Oracle函数_JDBC常用写法

    在这个“Oracle函数_JDBC常用写法”的主题中,我们将探讨Oracle的一些关键函数和JDBC的常见使用方法。 首先,让我们来看看`ORACLE函数大全.txt`中可能涵盖的内容。Oracle函数包括数学函数、字符串函数、日期时间...

    java开发中的一些常用小技巧

    ### Java开发中的常用小技巧详解 #### JDBC使用技巧与注意事项 **1. 使用PreparedStatement代替Statement** 在Java中,利用JDBC操作数据库时,我们经常需要动态构建SQL语句。直接使用`Statement`来构建这样的SQL...

    java连接各种数据库写法

    Oracle 数据库支持多种连接方式,其中最常用的是基于 JDBC 的 thin 驱动。以下是连接 Oracle 数据库的基本步骤: ```java // 加载 Oracle JDBC 驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); // 设置...

    jajva IO常用写法.word

    下面将详细讲解Java IO中的一些常用写法,以及如何指定编码读取和写入文件。 1. **指定编码读取文件** 在Java中,读取文件时,如果需要处理非ASCII字符,如中文,就需要指定正确的字符编码。例如,使用`...

    groovy入门实例代码详细(包括字符串,map,闭包等等)

    本入门实例代码详细地涵盖了Groovy的一些核心概念和常用特性,包括字符串操作、Map的使用以及闭包等。 1. **字符串操作**: - Groovy中的字符串可以是单引号或双引号包裹的。双引号中的变量可以直接展开,单引号则...

    Java基本语法第三季

    - **字符串对象**:在Java中,字符串是通过`String`类来表示的,位于`java.lang`包中。 - **创建字符串**:可以通过多种方式创建字符串对象。 - 直接赋值:`String str = "Hello";` - 使用构造函数:`String str =...

    Java正则表达式入门范例

    3. 转义:在Java字符串中,正则表达式的特殊字符需要转义,如`\d`在Java字符串中应写成`\\d`。 4. 多行匹配:默认情况下,`.`不匹配换行符,如需匹配多行,需设置`Pattern.DOTALL`标志。 通过以上讲解,你应该对...

    Java实验指导书(实验七).doc

    1. **字符串类**:掌握Java语言中字符串相关类(如`String`类)的使用方法。 2. **正则表达式**:理解正则表达式的原理及其在Java中的应用。 3. **数学运算类**:熟悉Java中`Math`类及`BigInteger`类的功能和用法。 ...

    Mybatis在Mapper.xml文件中的转义字符处理方式.pdf

    1. 常用的XML转义字符写法 在XML中,一些字符具有特定的含义,如“&lt;”表示一个新元素的开始,“&gt;”表示元素的结束,而“&”用于引用字符实体。如果要在XML文件中表示这些字符本身的字面值,就必须使用它们对应的转义...

    java中的正则表达式

    本文将详细介绍Java中常用的正则表达式写法及其四种主要功能:匹配、提取、分割以及替换。 #### 二、Java正则表达式基础 在Java中,`java.util.regex`包提供了用于处理正则表达式的类库,主要包括`Pattern`、`...

    java常用正则表达式.doc

    Java中的正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。在Java中,正则表达式通常与`java.util.regex`包中的类一起使用,如`Pattern`和`Matcher`。以下是一些常用的正则表达式及其...

    java面试题大全好多经典的试题

    在Java中可以通过以下几种方式创建字符串: - 使用`new String()`来创建一个新的字符串对象。 - 使用字符串字面量(如:"Hello"),这种方式会在常量池中查找是否存在相同的字符串,如果不存在则创建。 例如: ```...

    JAVA复习题总汇-选择题含答案 (1).docx

    13. 文件构造方法示例中,不正确的是`D`,因为路径分隔符应使用反斜杠`\`,但在字符串中需要转义,所以正确写法应为`"c:\\myjava\\demo.java"`。 14. 能去除字符串首、尾空格的方法是`trim()`。 15. 属于单目运算符...

    java编码规范考试题答案.doc

    本文档涵盖了Java编码规范的各种方面,包括集合类、线程、对称密码算法、异常处理、命名规范、随机数生成、压缩文件解压、安全编程规范、操作系统登录用户名获取、Java新循环写法、方法参数、字符串比较、加密和数字...

Global site tag (gtag.js) - Google Analytics