该程序纯属新人娱乐。
通过这个程序可以查看一段字符串中出现的中文字符、英文字符(区分大小写)、空格等个数。
其实应该有更好的方法可以尝试,比如正则表达式。
在SearchUtil类中,所有的字符串常量都应该定义为类常量;for循环中所有的局部变量i,j应该明确定义。
/**
* if语句的写法,都可以,只是被注释掉的更符合数学的习惯
* 第二种更符合变成习惯
*
* 如果将sum属性该为成员变量而不是局部变量
* 结果就是同一个对象第二次调用方法时,初始值被改变,而不是默认的0
* @author vincent
*/
public class SearchUtil {
/*
* 取得字符串中小写字符
*/
public int searchLowerCharSum(String str) {
int sum = 0;
for (int i = 0, j = str.length(); i < j; i++) {
// if ('a' <= str.charAt(i) && str.charAt(i) <= 'z')
if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z')
++sum;
}
return sum;
}
/*
* 取得字符串中大写字符
*/
public int searchUpperCharSum(String str) {
int sum = 0;
for (int i =0, j = str.length(); i < j; i++) {
// if ('A' <= str.charAt(i) && str.charAt(i) <= 'Z')
if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z')
++sum;
}
return sum;
}
/*
* 取得字符串中数字个数
*/
public int searchNumberSum(String str) {
int sum = 0;
for (int i = 0, j = str.length(); i < j; i++) {
// if ('0' <= str.charAt(i) && str.charAt(i) <= '9')
if (str.charAt(i) >= '0' && str.charAt(i) <= '9')
++sum;
}
return sum;
}
/*
* 取得中文字符个数
*/
public int searchChineseNumberSum(String str) {
int sum = 0;
for (int i = 0, j = str.length(); i < j; i++) {
if (str.charAt(i) >= '\u4e00' && str.charAt(i) <= '\u9fa5')
++ sum;
}
return sum;
}
/*
* 取得空格数
*/
public int searchSpaceSum(String str) {
int sum = 0;
for (int i = 0, j = str.length(); i < j; i++) {
if (str.charAt(i) == ' ')
// if (Character.isWhitespace(Character.valueOf(str.charAt(i))));
++sum;
}
return sum;
}
/*
* 取得其它字符个数
*/
public int searchOthersCharSum(String str) {
int sum = 0;
return sum = str.length() - (this.searchLowerCharSum(str) +
this.searchUpperCharSum(str) + this.searchNumberSum(str) +
this.searchChineseNumberSum(str) + this.searchSpaceSum(str));
}
// private int sum;
}
/**
*
* @author vincent
*/
public class SearchStringOO {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一段字符,以Enter结束:");
String str = in.nextLine();
SearchUtil search = new SearchUtil();
System.out.println("大写字符个数为:" + search.searchUpperCharSum(str));
System.out.println("小写字符个数为:" + search.searchLowerCharSum(str));
System.out.println("数字个数为:" + search.searchNumberSum(str));
System.out.println("中文字符个数为:" + search.searchChineseNumberSum(str));
System.out.println("空格个数为:" + search.searchSpaceSum(str));
System.out.println("其它字符个数为:" + search.searchOthersCharSum(str));
}
}
分享到:
相关推荐
"统计字符串中英文标点数量并截取.zip"的文件提供了针对这种情况的一个解决方案。这个压缩包内包含的可能是Java代码示例(如csdn-demo),用于批量处理字符串,统计其中的中英文标点符号的数量,并根据指定的字符...
- 如果是负数,则使用位运算 `(bt[i] & (0x7f))` 转换为相应的ASCII值,并添加到结果字符串中。 - 如果是非负数,则认为是英文字符,先添加一个空字符再添加原字符。 - 最终返回处理后的字符串。 ##### 3. 方法 ...
在Java中,处理字符串是非常常见且重要的任务之一,尤其是在涉及到国际化应用时,如何高效准确地处理中英文混合的字符串就显得尤为重要了。本文将基于提供的代码片段来探讨几种不同的Java字符串处理方法,并着重分析...
这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...
java实现含有英文字符串的符号替换为中文符号,在网上看了一些都没有详细的实现方式,看了这个就不用去摸索了,看了就会用了,下次有碰到这方面的,同样中文特殊符号转换为英文符号类似的逻辑
根据给定文件的信息,我们将深入探讨Java中字符串截取的原理、方法以及在中英文操作系统下的特殊处理。 ### Java字符串截取 #### 原理与实现 在Java中,字符串本质上是一个不可变的字符序列,由`char`类型的数组...
在Java编程语言中,对字符串中的字符进行a到z排序是一项常见的操作,特别是在处理文本数据或需要对字母顺序排列的场景。本知识点将详细讲解如何实现这个功能。 首先,我们需要理解字符串在Java中的本质。在Java中,...
总的来说,Java中判断字符串中是否包含中英文字符可以通过多种方式实现,关键在于理解字符编码和字符串处理的基本原理。根据实际场景选择合适的方法,既可以满足功能需求,又能兼顾效率和可读性。在进行这类操作时,...
5. **字符串替换**:`replace(oldChar, newChar)`或`replace(oldString, newString)`用于替换字符串中的某个字符或子串。例如,`str.replace("Java", "Python")`会将所有"Java"替换为"Python"。 6. **查找子串**:`...
### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。...
根据提供的文件信息,本文将详细解释Java中字符串的不同编码转换方法及原理,并深入探讨每种编码格式的特点。 ### Java字符串的编码转换 在Java中,处理不同字符集之间的字符串转换是一项常见任务。尤其是在处理...
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数
在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[] arrays = new String[] { gyu, sdf, zf, 大同, 收到, 地方, 三等分, 的人, 反对高铁, 泛代数, 上的投入...
### Java中英文字符串截取的关键点 1. **字符编码的影响**:中文字符在不同的编码方式下占用的字节数不同。例如,在UTF-8编码中,中文字符通常占用3个字节,而在GBK编码中,则可能占用2或4个字节。因此,在计算字符...
- `indexOf(String str)`:返回子字符串在原字符串中第一次出现的位置,若不存在则返回-1。 - `replace(char oldChar, char newChar)`:将所有出现的oldChar替换为newChar。 - `trim()`:去除字符串两端的空白字符。...
标题提到的"统计字符串中汉字、字母、数字、英文标点、中文标点个数"是一个典型的字符串分析问题,它涉及到对输入字符串进行逐个字符检查,识别并计数不同类型的字符。这个问题可以通过多种编程语言来解决,例如...
本示例探讨了如何使用Java实现从Unicode十六进制字符串到中英文字符的转换,以及反过来的过程。理解Unicode和UTF之间的关系是至关重要的。 Unicode是一个国际标准,它为世界上几乎所有的字符提供了一个唯一的数字...
在这个特定的题目中,我们关注的是如何从包含中文的字符串中准确截取特定长度的字符和字节。题目中提到“截取前5个字节, 字符串应该为‘java程’”,意味着我们需要理解,在UTF-8编码格式下,英文字符通常占用1个...
截断中英文混合的字符串(java源程序)