展开全部
在java中可以使用正则表达式来方便地统计一个字符串中出现的标点符号的个数,思路是:
1、先记录统计前的字符串长度
2、使用正则表达式把需要统计的标点符号清除掉
3、使用第1步里保存的长度-第2步获得的字符串的长度,即可得到标点符号的的个数
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String str = "这是;一段;测试文本,用来测试能不能去除掉标点符号。本例子只统计逗号句号和分号。 ";
int istr = str.length();
System.out.println("str的长度是:" + istr);
String str1 = str.replaceAll("[,。;]", "");
int istr1 = str1.length();
System.out.println("str1的长度是:" + istr1);
System.out.println("标点符号的个数是:" + (istr - istr1));
}
}
执行结果:
str的长度是:41
str1的长度是:36
标点符号的个数是:5
展开全部
有些不明白你的问题,如果你就要统计自己定义的一个标点符号的话,用str.split("定义的符号").length即可,如果是要统计多个,建议你循环.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Test{
public static void main(String[] args){
int comma=0;
int period=0;
int semicolon=0;
Scanner sc=new Scanner(System.in);
String [] a=sc.nextLine().split("");
for(int i=0;i<a.length;i++){
if (a[i].endsWith(",")){
comma++;
}
if(a[i].endsWith(".")){
period++;
}
if(a[i].endsWith(";")){
semicolon++;
}
}
System.out.println("in this String the number of comma is"+comma);
System.out.println("in this String the number of period is"+period);
System.out.println("in this String the number of semicolon is"+semicolon);
}
}
我写了串代码,统计的是逗号,句号,分号,如果你还想统计别的字符完全可以按这个来做。我也菜鸟,写的不好,还望见谅啊。我觉得还可以用什么case之类的语句,不过感觉这个比较好懂。我就选这样的写法了。希望能帮到你呀
public static void main(String[] args){
int comma=0;
int period=0;
int semicolon=0;
Scanner sc=new Scanner(System.in);
String [] a=sc.nextLine().split("");
for(int i=0;i<a.length;i++){
if (a[i].endsWith(",")){
comma++;
}
if(a[i].endsWith(".")){
period++;
}
if(a[i].endsWith(";")){
semicolon++;
}
}
System.out.println("in this String the number of comma is"+comma);
System.out.println("in this String the number of period is"+period);
System.out.println("in this String the number of semicolon is"+semicolon);
}
}
我写了串代码,统计的是逗号,句号,分号,如果你还想统计别的字符完全可以按这个来做。我也菜鸟,写的不好,还望见谅啊。我觉得还可以用什么case之类的语句,不过感觉这个比较好懂。我就选这样的写法了。希望能帮到你呀
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java中标点字符包括非字母、数字的字符。
用正则表达式比较简单,思路:把所有的标点替换成",",然后分割",",统计分割的次数。
str = str.replaceAll("[\\pP‘’“”]", ",");
\pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。
大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。
其他六个是
L:字母;
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符
代码如下:
public class Test {
public static void main(String[] args) {
String str = "jioji,.;'<>:{}|+_`~47897423^&*%(^1243-=kl;=-+_)j8932498";
str = str.replaceAll("[\\pP‘’“”]", ",");
System.out.println(str.split(",").length);
}
}
用正则表达式比较简单,思路:把所有的标点替换成",",然后分割",",统计分割的次数。
str = str.replaceAll("[\\pP‘’“”]", ",");
\pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。
大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。
其他六个是
L:字母;
M:标记符号(一般不会单独出现);
Z:分隔符(比如空格、换行等);
S:符号(比如数学符号、货币符号等);
N:数字(比如阿拉伯数字、罗马数字等);
C:其他字符
代码如下:
public class Test {
public static void main(String[] args) {
String str = "jioji,.;'<>:{}|+_`~47897423^&*%(^1243-=kl;=-+_)j8932498";
str = str.replaceAll("[\\pP‘’“”]", ",");
System.out.println(str.split(",").length);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符串:数字 字母 下划线(特殊符号)
去掉数字,字母那么剩下的就是标点符号了
去数字(0~9)
去字母(A-Z)和(a-z)
利用循环取出不是数字,字母的就ok了
去掉数字,字母那么剩下的就是标点符号了
去数字(0~9)
去字母(A-Z)和(a-z)
利用循环取出不是数字,字母的就ok了
追问
这方法肯定不实用,要是我只统计某一标点,难道还添加其余的所有符号不成。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询