- 浏览: 288159 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
jim8757:
能提供下完整的代码吗?
实例解析java + jQuery + json工作过程(登录) -
befairy:
收藏,谢谢LZ
基于Java、jQuery应用的账务管理系统开源了(09.3.19更新) -
Gilbert_Sam:
我看过这本书,很好,看到二十几章的地方,结果网站就登陆不上,写 ...
Linux C编程一站式学习 http://learn.akae.cn/ -
ljy520zhiyong:
这个网址进入不了呀
Linux C编程一站式学习 http://learn.akae.cn/ -
蜀山红日:
如果后台要向前台返回复杂数据该怎么办呢
实例解析java + jQuery + json工作过程(登录)
小弟我以前用c语言的,最近做个课题,用java.不知道有没有好的方法,用于判断一个字符串中中文数量?
--------------------------------------------------------------------------------
回复1:
UP!
回复2:
str.toCharArray()根据中文中的编码点逐个判断
回复3:
楼上的能不能说的更清楚点:)
回复4:
用正则表达式[u4e00-u9fa5]
public static void main(String[] args) {
int count=0;
String regEx = "[\u4e00-\u9fa5]";
//System.out.println(regEx);
String str = "中文fdas";
//System.out.println(str);
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
count=count+1;
}
}
System.out.println("共有"+count+"个");
}
回复5:
楼上的方法好!
如果是判断连续的几个中文怎么改啊.谢谢啊.
回复6:
不知道有没有现成的,下面的方法可以参考一下。
public int numOfChineseChar(String sourStr) throws UnsupportedEncodingException{
int len = sourStr.length();
byte[] bytStr = sourStr.getBytes();
int intStr, count = 0;
for(int i = 0; i < bytStr.length; i++){
intStr = bytStr[i];
if(intStr < 0){//JAVA中中文字符是负的BYTE值。
count++;
i++; //中文字符是双字节。
}
}
return count;
}
回复7:
String regEx = "[\u4e00-\u9fa5]";
//System.out.println(regEx);
String str = "中文fda她jjs";
String tem= str.replaceAll(regEx,"aa");
System.out.println(""+(tem.length()-str.length()));
不好意思,修改一下楼上的程序.
回复8:
liugang9936033(开心就好) 您的方法有创意.
不知道有没有判断连续出现多少个中文的方法,
比如:"你好1233",连续出现2个中文.
而"你1233好",连续出现1个中文.
这个怎么办啊.有人帮帮我吗?
谢谢楼上所有的朋友!
回复9:
你把你个字符串的中的非中文的都过滤掉剩下的都是中文的 然后就取个数或其他操作不就可以了吗
回复10:
public class Zw {
char a;
int count=0;
//public String str="";
public void SetStr(String str){
//this.str=str;
for(int i=0;i<str.length();i++){
a=str.charAt(i);
if((a!='a')&&(a!='b')&&(a!='c')&&(a!='d')
&&(a!='e')&&(a!='f')&&(a!='g')&&(a!='h')
&&(a!='i')&&(a!='j')&&(a!='k')&&(a!='l')
&&(a!='m')&&(a!='n')&&(a!='o')&&(a!='p')
&&(a!='q')&&(a!='r')&&(a!='s')&&(a!='t')
&&(a!='u')&&(a!='v')&&(a!='w')&&(a!='x')
&&(a!='y')&&(a!='z')&&(a!='1')&&(a!='2')
&&(a!='3')&&(a!='4')&&(a!='5')&&(a!='6')
&&(a!='7')&&(a!='8')&&(a!='9')&&(a!='0')
&&(a!=',')&&(a!='.')&&(a!='/')&&(a!=';')
&&(a!=' ')&&(a!='[')&&(a!=']')&&(a!='\')){
count++;
continue;
}
}
System.out.println("COUNT的值为:"+count);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Zw z= new Zw();
z.SetStr("zhongwen中文");
}
}
你可以通过字母,数字和特殊字符的编码进行判断,我那些都忘了,只好写成这样了,如果是大小写字母的话在String类中 有不区分大小的方法 哎好久不干这个了都忘光了
回复11:
可以,还是用上面的方法,计算出连续负数的byte只就可以了
然后将负数的byte值的个数除以2就可以得到。
回复12:
public static void main(String[] args) {
int count = 0;
String regEx = "[u4e00-u9fa5]+[^u4e00-u9fa5]";
String str = "ss中文文fdas文";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
String repStr = null;
while (m.find()) {
repStr = m.group();
}
String regEx1 = "[u4e00-u9fa5]";
Pattern p1 = Pattern.compile(regEx1);
Matcher m1 = p1.matcher(repStr);
while (m1.find()) {
count = count + 1;
}
System.out.println("连续出现" + count + "个中文");
}
虽然程序写得很垃圾,但是达到要求了。
回复13:
package com.biaoflying;
import java.util.regex.*;
import java.util.*;
public class CountNum{
private static String str = "中文语言fd何as最近几天dafds" +
"工作dfds效率不高fdsf番dfsfdsa啊";
private static Pattern p;
private static Matcher m;
//private static int count=0;
public static int getNum(String str){
int count=0;
String regEx = "[\u4e00-\u9fa5]";
p = Pattern.compile(regEx);
m = p.matcher(str);
while(m.find())count++;
return count;
}
public static int alonechar(String str){
int together=0;
Map map=charLinked(str);
Iterator iter=map.values().iterator();
while(iter.hasNext()){
together+=((Integer)iter.next()).intValue();
}
return getNum(str)-together;
}
public static Map charLinked(String str){
Map map=new HashMap();
String temp=null;
String regEx = "[\u4e00-\u9fa5][\u4e00-\u9fa5]+";
p = Pattern.compile(regEx);
m = p.matcher(str);
while(m.find()){
temp=m.group();
map.put(temp,new Integer(temp.getBytes().length/2));
}
return map;
}
public static void main(String[] args) {
System.out.println(getNum(str));
System.out.println(charLinked(str));
System.out.println(alonechar(str));
}
}
回复14:
17
{效率不高=4, 最近几天=4, 工作=2, 中文语言=4}
3
回复15:
String regEx = "[^u4e00-u9fa5]+";
String str = "中文f1d3a她jjs";
String[] tem= str.split(regEx);
下面是测试结果,剩下就是你自己处理了。
//String str = "ssss中文f1d3a她jjs"-----[, 中文, 她]
//String str = "中文f1d3a她jjs"-------[中文, 她]
回复16:
public static void main(String[] args)
{
String input = "中文语言fd何as最近几天dafds工作dfds效率不高fdsf番dfsfdsa啊";
String temp = null;
Pattern p = Pattern.compile("[u4E00-u9FA5]+");
Matcher m = p.matcher(input);
while (m.find())
{
temp = m.group(0);
System.out.println(temp + ":" + temp.length());
}
}
回复17:
= =路过 看看
回复18:
好贴,学习
回复19:
小弟谢谢上面各位了!
可以封贴了:)
回复20:
mark
回复21:
最后应该从二进制buffer开始分析。
回复22:
编码不同,方法不一样。
回复23:
牛!
回复24:
来的够晚了我
哈哈
走了!!!!!!!!
回复25:
mark一下
回复26:
好是复杂啊
回复27:
up
回复28:
收了.
回复29:
路过,收藏。
回复30:
mark
回复31:不错
--------------------------------------------------------------------------------
回复1:
UP!
回复2:
str.toCharArray()根据中文中的编码点逐个判断
回复3:
楼上的能不能说的更清楚点:)
回复4:
用正则表达式[u4e00-u9fa5]
public static void main(String[] args) {
int count=0;
String regEx = "[\u4e00-\u9fa5]";
//System.out.println(regEx);
String str = "中文fdas";
//System.out.println(str);
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
count=count+1;
}
}
System.out.println("共有"+count+"个");
}
回复5:
楼上的方法好!
如果是判断连续的几个中文怎么改啊.谢谢啊.
回复6:
不知道有没有现成的,下面的方法可以参考一下。
public int numOfChineseChar(String sourStr) throws UnsupportedEncodingException{
int len = sourStr.length();
byte[] bytStr = sourStr.getBytes();
int intStr, count = 0;
for(int i = 0; i < bytStr.length; i++){
intStr = bytStr[i];
if(intStr < 0){//JAVA中中文字符是负的BYTE值。
count++;
i++; //中文字符是双字节。
}
}
return count;
}
回复7:
String regEx = "[\u4e00-\u9fa5]";
//System.out.println(regEx);
String str = "中文fda她jjs";
String tem= str.replaceAll(regEx,"aa");
System.out.println(""+(tem.length()-str.length()));
不好意思,修改一下楼上的程序.
回复8:
liugang9936033(开心就好) 您的方法有创意.
不知道有没有判断连续出现多少个中文的方法,
比如:"你好1233",连续出现2个中文.
而"你1233好",连续出现1个中文.
这个怎么办啊.有人帮帮我吗?
谢谢楼上所有的朋友!
回复9:
你把你个字符串的中的非中文的都过滤掉剩下的都是中文的 然后就取个数或其他操作不就可以了吗
回复10:
public class Zw {
char a;
int count=0;
//public String str="";
public void SetStr(String str){
//this.str=str;
for(int i=0;i<str.length();i++){
a=str.charAt(i);
if((a!='a')&&(a!='b')&&(a!='c')&&(a!='d')
&&(a!='e')&&(a!='f')&&(a!='g')&&(a!='h')
&&(a!='i')&&(a!='j')&&(a!='k')&&(a!='l')
&&(a!='m')&&(a!='n')&&(a!='o')&&(a!='p')
&&(a!='q')&&(a!='r')&&(a!='s')&&(a!='t')
&&(a!='u')&&(a!='v')&&(a!='w')&&(a!='x')
&&(a!='y')&&(a!='z')&&(a!='1')&&(a!='2')
&&(a!='3')&&(a!='4')&&(a!='5')&&(a!='6')
&&(a!='7')&&(a!='8')&&(a!='9')&&(a!='0')
&&(a!=',')&&(a!='.')&&(a!='/')&&(a!=';')
&&(a!=' ')&&(a!='[')&&(a!=']')&&(a!='\')){
count++;
continue;
}
}
System.out.println("COUNT的值为:"+count);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Zw z= new Zw();
z.SetStr("zhongwen中文");
}
}
你可以通过字母,数字和特殊字符的编码进行判断,我那些都忘了,只好写成这样了,如果是大小写字母的话在String类中 有不区分大小的方法 哎好久不干这个了都忘光了
回复11:
可以,还是用上面的方法,计算出连续负数的byte只就可以了
然后将负数的byte值的个数除以2就可以得到。
回复12:
public static void main(String[] args) {
int count = 0;
String regEx = "[u4e00-u9fa5]+[^u4e00-u9fa5]";
String str = "ss中文文fdas文";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
String repStr = null;
while (m.find()) {
repStr = m.group();
}
String regEx1 = "[u4e00-u9fa5]";
Pattern p1 = Pattern.compile(regEx1);
Matcher m1 = p1.matcher(repStr);
while (m1.find()) {
count = count + 1;
}
System.out.println("连续出现" + count + "个中文");
}
虽然程序写得很垃圾,但是达到要求了。
回复13:
package com.biaoflying;
import java.util.regex.*;
import java.util.*;
public class CountNum{
private static String str = "中文语言fd何as最近几天dafds" +
"工作dfds效率不高fdsf番dfsfdsa啊";
private static Pattern p;
private static Matcher m;
//private static int count=0;
public static int getNum(String str){
int count=0;
String regEx = "[\u4e00-\u9fa5]";
p = Pattern.compile(regEx);
m = p.matcher(str);
while(m.find())count++;
return count;
}
public static int alonechar(String str){
int together=0;
Map map=charLinked(str);
Iterator iter=map.values().iterator();
while(iter.hasNext()){
together+=((Integer)iter.next()).intValue();
}
return getNum(str)-together;
}
public static Map charLinked(String str){
Map map=new HashMap();
String temp=null;
String regEx = "[\u4e00-\u9fa5][\u4e00-\u9fa5]+";
p = Pattern.compile(regEx);
m = p.matcher(str);
while(m.find()){
temp=m.group();
map.put(temp,new Integer(temp.getBytes().length/2));
}
return map;
}
public static void main(String[] args) {
System.out.println(getNum(str));
System.out.println(charLinked(str));
System.out.println(alonechar(str));
}
}
回复14:
17
{效率不高=4, 最近几天=4, 工作=2, 中文语言=4}
3
回复15:
String regEx = "[^u4e00-u9fa5]+";
String str = "中文f1d3a她jjs";
String[] tem= str.split(regEx);
下面是测试结果,剩下就是你自己处理了。
//String str = "ssss中文f1d3a她jjs"-----[, 中文, 她]
//String str = "中文f1d3a她jjs"-------[中文, 她]
回复16:
public static void main(String[] args)
{
String input = "中文语言fd何as最近几天dafds工作dfds效率不高fdsf番dfsfdsa啊";
String temp = null;
Pattern p = Pattern.compile("[u4E00-u9FA5]+");
Matcher m = p.matcher(input);
while (m.find())
{
temp = m.group(0);
System.out.println(temp + ":" + temp.length());
}
}
回复17:
= =路过 看看
回复18:
好贴,学习
回复19:
小弟谢谢上面各位了!
可以封贴了:)
回复20:
mark
回复21:
最后应该从二进制buffer开始分析。
回复22:
编码不同,方法不一样。
回复23:
牛!
回复24:
来的够晚了我
哈哈
走了!!!!!!!!
回复25:
mark一下
回复26:
好是复杂啊
回复27:
up
回复28:
收了.
回复29:
路过,收藏。
回复30:
mark
回复31:不错
发表评论
-
自定义js延时函数
2010-03-26 11:38 4576setTimeout不是真正意义上的延时函数,而且在表单提交后 ... -
ssh jar包配置
2009-11-27 11:31 2344本文中ssh指:struts2,srping2.5,hib ... -
每个项目中,你不得不知的11个Java第三方类库
2009-11-02 09:06 1137Java第三方library ecosystem是一个很广阔的 ... -
J2EE学习中一些值得研究的开源项目
2009-08-10 10:07 1370这篇文章写在我研究J2SE、J2EE近三年后。前3年 ... -
对JXL包的研究(java操作excel)
2009-06-25 07:44 1560对JXL包的研究(java操作excel) 在开源世界中,有两 ... -
java类中成员的装载顺序你知道吗
2009-04-03 08:18 1026最近去参加了SCJP培训,相信对于绝大多数的JAVA工作者来说 ... -
java操作word文件
2009-03-31 15:41 1757一个jacob操作Word的例子 import java. ... -
Java操作PDF文件(iText)
2009-03-31 15:32 5924然jacob中也有关于PDF的方法,但是过于复杂。iText是 ... -
java对excel操作
2009-03-31 15:11 1498从Excel文件读取数据表 Java Excel API既可 ... -
JAVA解析XML的四种方法
2009-03-31 08:49 1430XML现在已经成为一种通 ... -
Java:集合类性能分析
2009-03-20 20:41 19801.Java 集合框架图 -集合接口:6个接口(短虚 ... -
在看commons-lang.jar包源码时候的一些发现及实践
2009-03-11 10:55 3645通常,我们在完成一个标准的JavaBean的时候,都需要同时完 ... -
解决大批量数据导出Excel产生内存溢出的方案(二)
2009-03-11 10:42 6350客户要求一次导出20w行数据,这就要求导出的文件必须带shee ... -
解决大批量数据导出Excel产生内存溢出的方案
2009-03-11 10:41 5439POI或者JXL在导出大量数据的时候,由于它们将每一个单元格生 ... -
java语言的反射机制1
2009-03-11 10:23 1146java语言的反射机制为是java语言所提供的一项特别吸引人的 ... -
Java获取各种常用时间方法(二)
2009-03-11 09:43 1092//获得本年最后一天的日期 * ... -
Java获取各种常用时间方法
2009-03-11 09:40 1234本人之前做的项目中积累常用的时间方法,贴出来与大家共享,如果哪 ... -
JavaSE6.0 Web Service学习笔记(二)
2009-03-11 09:30 7426JavaSE6.0下的Web Service 从JavaSE6 ... -
JavaSE6.0 Web Service学习笔记(一)
2009-03-11 09:24 1464Web Service概述 Web Service ... -
JDK5.0 Annotation学习笔记(一)
2009-03-11 09:22 989背景知识: 从JDK5开始提供名为Annotat ...
相关推荐
判断字符串是否包含emoji表情
至于判断字符串中是否有连续的中文字符,我们可以稍微修改上述代码,添加一个额外的条件来检查当前字符和下一个字符是否都是中文。这里是一个可能的实现: ```java public static boolean hasConsecutiveChinese...
#### 四、判断字符串中有多少个汉字和标点符号 根据题目描述,我们需要实现一个方法来统计字符串中汉字和标点符号的数量。具体步骤如下: 1. **定义方法 `isChinese(char c)`**:此方法用于判断单个字符是否为汉字...
在Java中判断字符串是否含有乱码是一个常见的问题,特别是在处理网络传输数据或文本文件导入导出时。本文将介绍通过实例代码如何判断一个字符串是否含有乱码,并通过编写的Java方法来实现此功能。 首先,我们需要...
java判断一段话中是否有电话号码,并将其进行隐藏
以下是一种简单的Java方法,用于判断字符串是否全部由中文字符组成: ```java public static boolean isAllChinese(String str) { for (int i = 0; i (); i++) { char c = str.charAt(i); if ((c ) || (c > '\u9...
【Java 判断字符串中文英文工具类】 在Java编程中,有时我们需要判断一个字符串中的字符是否为中文或英文。为了实现这个功能,我们可以创建一个工具类,利用Java的`Character`类和正则表达式进行判断。以下是一个...
java字符转换类代码,可以实现判断字符串是否为空,并删除首尾空格,字符串替换函数,代码转换,GBK转换为ISO-8859-1,代码转换 从srcCode转换为destCode,代码转换,GBK转换为big5,替换非法字符,标记本身等于分隔...
判断字符串是否包含日文字符
java 利用正则表达式从字符串中提取省、市、区、镇、乡等区域名称(包含少数民族地区),支持地址中无省,无市,无县情况。
在Java编程语言中,处理字符串是一项常见的任务,尤其是在文本处理和数据分析方面。本文将深入探讨两个关键知识点:如何从字符串中提取所有中文字符以及如何判断一个字符串是否为空白字符串。 首先,让我们关注...
1.删除字符 2.去空格 3.去除所有空格和特殊字符 4.判断邮箱 5.字符串集合转字符串 6.只保留汉字 7.关键词前后是否包含英文字母 8.去除字符串中的附件 9.获取下标单个位置和所有位置
今天,我们将探讨Java实现字符串转换成可执行代码的方法,这是一种非常有价值的技术,能够将字符串转换成可执行的代码,具有很高的实践价值。 什么是JEXL? JEXL(Java Expression Language)是一种基于Java的...
在Java编程中,统计字符串中汉字、英文字母及数字数量是非常常见的操作需求。本文将详细介绍Java简单统计字符串中汉字、英文字母及数字数量的方法,涉及Java针对字符串的遍历、编码转换、判断等相关操作技巧。 字符...
在Java中,可以通过字符串分割操作将一个包含多行数据的字符串转换成二维数组。具体地,首先按照分隔符(如`;`)将字符串分割成多个子字符串,再对每个子字符串进一步分割(如`,`),并将分割后的字符串转换成数字...
在编程中,字符串是由字符组成的序列,可以包含文字、数字、标点符号等。中文和英文标点符号在不同的字符编码下有不同的表示方式。GBK是中国大陆常用的汉字编码标准,能表示大部分中文字符,而UTF(Unicode ...
最后,`checkNull`方法用于判断字符串是否为空或只包含空白字符。 综上所述,通过以上知识点可以看出,Java正则表达式在处理各种格式的数据验证时非常实用且灵活。开发者可以根据具体需求选择合适的正则表达式来...
截取字符串通常有两种主要方法:固定位置截取和指定长度截取。 1. 固定位置截取:这种方法通常基于起始位置和结束位置来获取字符串的一部分。例如,在Python中,你可以使用切片操作符`[start:end]`来截取字符串,...
在Java编程中,判断字符串是否包含中文字符,并在必要时过滤掉其中的中文字符是一项常见的需求。这在处理文件名、数据清洗、国际化应用等方面尤为重要。以下将详细介绍如何用Java实现这一功能。 首先,要判断字符串...
- 示例代码中的 `if (y.lastIndexOf(s) == (y.length() - s.length()))` 用来判断字符串 `y` 是否以字符串 `s` 结尾。 5. **数组处理**: - `length` 属性:获取数组的长度。在示例代码中,`k.length` 用来获取...