「java获取中文字母数字」java获取输入的数字
本篇文章给大家谈谈java获取中文字母数字,以及java获取输入的数字对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java 取字符串的中字母数字组合?
代码截图
运行结果
以下是全部代码,不管你字母是什么,字母后边有多少数字,都能取出来,如果是只需要数字,那么拼接的时候别拼接那个字母就OK
public static void main(String[] args) {
String str = "p17g1n12f3";
StringBuffer data = new StringBuffer();
String[] arr = new String[4];
for (int i = 0,j=0,leni = str.length();ileni;i++){
str.charAt(i);
if (check(str.charAt(i))){
if (StringUtils.isBlank(data.toString())){
data.append(str.charAt(i));
}else {
arr[j] = data.toString();
j++;
data = new StringBuffer();
data.append(str.charAt(i));
}
}
if (isNumberic(str.charAt(i)+"")){
data.append(str.charAt(i));
}
if (i+1 == leni){
arr[j] = data.toString();
}
}
System.out.println(Arrays.toString(arr));
}
/**
* 判断字符串是否为数字
*
* @param str
* @return
*/
public static boolean isNumberic(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
/**
* 判断一个字符串是否为字母
*
* @param fstrData
* @return
*/
public static boolean check(char fstrData) {
char c = fstrData;
if (((c = 'a' c = 'z') || (c = 'A' c = 'Z'))) {
return true;
} else {
return false;
}
}
java语言中如何获取字符串中汉字的个数
【实例描述】
字符串中可以包含数字,字母、汉字或者其他字符。使用Character类的isDigit()方法可以判断字符中的某个字符是否为数字,使用Character类的isLetter()方法可以判断字符中的某个字符是否为字母。实例中将介绍一种方法用来判断字符串中的某个字符是否为汉字,通过此方法可以计算字符串中汉字的数量。实例的运行效果如图4.24所示。
【实现过程】
在Eclipse中新建项目ChineseCharacter,并在其中创建一个ChineseCharacter.java文件。在该类的主方法中创建标准输入流的扫描器对象,接收用户输入的字符串。我们在程序中使用matches()方法来统计该字符串中汉字的个数。核心代码如下所示:
protectedvoiddo_button_actionPerformed(ActionEvente){Stringtext=chineseArea.getText();//获取用户输入intamount=0;//创建汉字数量计数器for(inti=0;itext.length();i++){//遍历字符串每一个字符//使用正则表达式判断字符是否属于汉字编码booleanmatches=Pattern.matches("^[\u4E00-\u9FA5]{0,}$",""+text.charAt(i));if(matches){//如果是汉字amount++;//累加计数器}}umField.setText(amount+"");//在文本框显示汉字数量}
【代码解析】
本实例的关键点在于正则表达式的使用。Java提供了Pattern用于正则表达式的编译表示形式,该类提供的静态方法matches()可以执行正则表达式的匹配。该方法编译给定正则表达式并尝试给定输入与其匹配。如果要匹配的字符序列与正则表达式匹配则返回true,否则返回false。其声明语法如下:
publicstaticbooleanmatches(Stringregex,CharSequenceinput);【知识扩展】
使用正则表达式可以方便地进行字符串操作,正则表达式经常被用来验证用户输入的信息,如可以判断用户输入的格式是否正确。本实例中使用正则表达式来判断用户输入的字符串是否为汉字,如果为汉字则计数器加1,最后得到字符串中所有汉字的数量。
java中根据一段字符串,获取其中的字母,有要求;求个具体代码
要求1中要去掉所有数字,要求2、3中又要保留数字并进行翻译,所以我两种都写了。具体代码为:
public class Test {
public static void main(String args[]) {
String str = "0as2sw$#3Six";
System.out.println("原字符串:[" + str + "]");
System.out.println("");
//不翻译数字
SetString set1 = new LinkedHashSet();
for (String s : str.split("[^A-Z a-z]")) {
if (s.length() 0) {
set1.add(s);
}
}
System.out.println("不翻译数字的结果:" + set1);
System.out.println("");
/*因为又要去除非字母和数字(以下简称去杂),又要将去杂结果分离成数字和字母,再翻译数字,整个流程挺麻烦的,索性在去杂之前,先将数字翻译成英文,为了使数字翻译后的英文和原字符串的字母分开,在数字左右添加占位符#,这样的话,形如:[a1b2c3]就会被处理为:[a#one#b#two#c#three#],这样去杂后,就会被分割为:[a,one,b,two,c,three]了。这里定义了枚举值English,用于实现0-9的英文映射,[10]不好映射成[ten],现在只能映射为[one,zero],如果按照题干非要映射为ten的话你再考虑考虑吧*/
for (English english : English.values()) {
str = str.replaceAll(english.getNum() + "", "#" + english.name() + "#");
}
System.out.println("将数字替换为“占位符 + 英文 + 占位符”的中间结果:[" + str + "]");
System.out.println("");
//翻译数字的结果
SetString set2 = new LinkedHashSet();
for (String s : str.split("[^A-Za-z]")) {
if (s.length() 0 ) {
//判断当前字符串是否是数字的英文,如果不是,就把它拆成单字母
if (mappingEnglish(s)){
set2.add(s);
}else {
for (char c : s.toCharArray()) {
set2.add(String.valueOf(c));
}
}
}
}
System.out.println("翻译数字的结果:" + set2);
}
//判断当前字符串是否是数字的英文
private static boolean mappingEnglish(String str) {
for (English english : English.values()) {
str = str.toLowerCase();
if (english.name().equals(str)) {
return true;
}
}
return false;
}
enum English {
zero(0),
one(1),
two(2),
three(3),
four(4),
five(5),
six(6),
seven(7),
eight(8),
nine(9);
private int num;
public int getNum() {
return num;
}
English(int num) {
this.num = num;
}
}
}
我怕发出来代码又挤在一起,顺便也截个图:
8-21行
22-50行
51-61行
62-85行完
运行结果:
java获取中文字母数字的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取输入的数字、java获取中文字母数字的信息别忘了在本站进行查找喔。
发布于:2022-12-12,除非注明,否则均为
原创文章,转载请注明出处。