/**
* 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("\"", """, replace("<", "<", str));
}
/**
* 替换字符串,将被编码的转换成原始码(替换成双引号和小于号)
*
* @param str String
* @return String
*/
public static String htmldecode(String str) {
if (str == null) {
return null;
}
return replace(""", "\"", replace("<", "<", 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("<", "<", str);
str = replace(" ", " ", str);
str = replace("\r\n", _BR, str);
str = replace("\n", _BR, str);
str = replace("\t", " ", 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));
}
}
}
* 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("\"", """, replace("<", "<", str));
}
/**
* 替换字符串,将被编码的转换成原始码(替换成双引号和小于号)
*
* @param str String
* @return String
*/
public static String htmldecode(String str) {
if (str == null) {
return null;
}
return replace(""", "\"", replace("<", "<", 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("<", "<", str);
str = replace(" ", " ", str);
str = replace("\r\n", _BR, str);
str = replace("\n", _BR, str);
str = replace("\t", " ", 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));
}
}
}
发表评论
-
Struts标签 下拉框 迭代
2009-09-16 09:08 1589案例: select latnid from t_latn; ... -
控制WebLogic解压war包
2009-09-14 08:28 1724在开发web应用时,如果通过weblogic的控制台部署war ... -
线程的基本用法
2009-06-25 11:04 818实现多线程的方法有3种: 1.继承thread类 eg : ... -
Timer的用法
2009-06-25 09:07 1063使用Timer和TimerTask组合 最后 ... -
线程的通俗解释
2009-06-24 08:26 1316但是进程的概念相 ... -
进程通俗解释
2009-06-24 08:21 879进程(Process)指操作系统中一个独立运行的程序。例 ... -
java 调用存储过程 和 PreperStmt的用法
2009-06-14 10:54 1276PreparedStatement 的用法PreparedSt ... -
MyEclipse更改快捷键
2009-06-14 08:22 2310MyEclipse安装完成之后,有一个很常用的快捷键Conte ... -
java最大公约数算法
2009-05-20 20:06 1853最大公约数算法:如果r是a和b之间相除后的余数,则a和b之间的 ... -
创建文件,并填写内容的几种方式
2009-05-15 08:23 976import java.io.*; public class ... -
java 存储过程传递数组类型的参数
2009-05-11 08:06 1504import java.sql.*; public cla ... -
javascript onpropertychange
2009-05-09 14:38 1085<!DOCTYPE HTML PUBLIC " ... -
java.math.BigDecimal的精度问题
2009-05-09 11:21 13521. String myMoney = "100 ... -
JAVA设计模式
2009-04-24 09:15 15121、FACTORY(工厂模式) 2、BUILDER(建造模式 ... -
Struts2入门与配置
2009-04-09 08:21 914年前在上海静静等待回家的日子 , 闲来无事,在好友李三年的 ... -
JavaMail
2009-04-03 09:00 718package com.tom; import org.ap ... -
javascript 动态增加删除表格
2009-02-28 09:19 806<!DOCTYPE HTML PUBLIC " ... -
在web.xml不认<taglib>解决办法:
2009-02-22 20:40 731在web.xml不认<taglib>解决办法: ... -
自己实现单点登录
2009-02-21 16:04 1052摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软 ... -
java多线程并发访问解决方案
2009-02-21 15:40 1433多线程并发访问解决方案 synchronized关键 ...
相关推荐
在Java编程语言中,字符串是极其重要且常用的元素。Java提供了两种主要的字符串类:`String` 和 `StringBuffer`(或其线程安全的版本`StringBuilder`)。这两个类提供了丰富的功能来创建、操作和管理字符串。 首先...
在Java编程语言中,处理字符串时经常会遇到需要替换或去除回车换行符的情况,这在处理文本数据、日志文件或用户输入时尤其常见。回车换行符是文本中用于表示新行的特殊字符组合,通常由`\n`(换行符)和`\r`(回车符...
本篇主要对比了这两种语言在字符串操作、类型转换、枚举处理以及一些其他常见代码写法上的差异。 **1. 字符串操作** 在字符串处理方面,Net 和 Java 提供了相似但不尽相同的方法。例如: - Net 中判断字符串是否...
在.NET和Java编程中,有一些常见的代码写法差异,这些差异主要体现在语法、类型转换、枚举处理、字符串操作以及泛型集合的使用上。以下是对这两种语言在这些方面的对比和详细解释: 1. **字符串操作** - .NET中的`...
本文将深入探讨Java中两种常用的路径写法:“/”(正斜杠)与“\”(反斜杠),并结合实例来阐述它们的特点及应用场景。 #### 二、路径写法概述 Java支持两种路径分隔符:“/”与“\”,它们分别代表了不同操作...
在这个“Oracle函数_JDBC常用写法”的主题中,我们将探讨Oracle的一些关键函数和JDBC的常见使用方法。 首先,让我们来看看`ORACLE函数大全.txt`中可能涵盖的内容。Oracle函数包括数学函数、字符串函数、日期时间...
### Java开发中的常用小技巧详解 #### JDBC使用技巧与注意事项 **1. 使用PreparedStatement代替Statement** 在Java中,利用JDBC操作数据库时,我们经常需要动态构建SQL语句。直接使用`Statement`来构建这样的SQL...
Oracle 数据库支持多种连接方式,其中最常用的是基于 JDBC 的 thin 驱动。以下是连接 Oracle 数据库的基本步骤: ```java // 加载 Oracle JDBC 驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); // 设置...
下面将详细讲解Java IO中的一些常用写法,以及如何指定编码读取和写入文件。 1. **指定编码读取文件** 在Java中,读取文件时,如果需要处理非ASCII字符,如中文,就需要指定正确的字符编码。例如,使用`...
本入门实例代码详细地涵盖了Groovy的一些核心概念和常用特性,包括字符串操作、Map的使用以及闭包等。 1. **字符串操作**: - Groovy中的字符串可以是单引号或双引号包裹的。双引号中的变量可以直接展开,单引号则...
- **字符串对象**:在Java中,字符串是通过`String`类来表示的,位于`java.lang`包中。 - **创建字符串**:可以通过多种方式创建字符串对象。 - 直接赋值:`String str = "Hello";` - 使用构造函数:`String str =...
3. 转义:在Java字符串中,正则表达式的特殊字符需要转义,如`\d`在Java字符串中应写成`\\d`。 4. 多行匹配:默认情况下,`.`不匹配换行符,如需匹配多行,需设置`Pattern.DOTALL`标志。 通过以上讲解,你应该对...
1. **字符串类**:掌握Java语言中字符串相关类(如`String`类)的使用方法。 2. **正则表达式**:理解正则表达式的原理及其在Java中的应用。 3. **数学运算类**:熟悉Java中`Math`类及`BigInteger`类的功能和用法。 ...
1. 常用的XML转义字符写法 在XML中,一些字符具有特定的含义,如“<”表示一个新元素的开始,“>”表示元素的结束,而“&”用于引用字符实体。如果要在XML文件中表示这些字符本身的字面值,就必须使用它们对应的转义...
本文将详细介绍Java中常用的正则表达式写法及其四种主要功能:匹配、提取、分割以及替换。 #### 二、Java正则表达式基础 在Java中,`java.util.regex`包提供了用于处理正则表达式的类库,主要包括`Pattern`、`...
Java中的正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。在Java中,正则表达式通常与`java.util.regex`包中的类一起使用,如`Pattern`和`Matcher`。以下是一些常用的正则表达式及其...
在Java中可以通过以下几种方式创建字符串: - 使用`new String()`来创建一个新的字符串对象。 - 使用字符串字面量(如:"Hello"),这种方式会在常量池中查找是否存在相同的字符串,如果不存在则创建。 例如: ```...
13. 文件构造方法示例中,不正确的是`D`,因为路径分隔符应使用反斜杠`\`,但在字符串中需要转义,所以正确写法应为`"c:\\myjava\\demo.java"`。 14. 能去除字符串首、尾空格的方法是`trim()`。 15. 属于单目运算符...
本文档涵盖了Java编码规范的各种方面,包括集合类、线程、对称密码算法、异常处理、命名规范、随机数生成、压缩文件解压、安全编程规范、操作系统登录用户名获取、Java新循环写法、方法参数、字符串比较、加密和数字...