200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java识别汉字个数_统计字符串中汉字的个数

java识别汉字个数_统计字符串中汉字的个数

时间:2020-07-14 01:14:48

相关推荐

java识别汉字个数_统计字符串中汉字的个数

字符串可以包括数字、字母、汉字或者其他字符。使用Charater类的isDigit()方法可以判断字符串中的某个字符是否为数字,

使用Character类的isLetter()方法可以判断字符串中的某个字符是否为字母。

本案例将介绍用“正则表达式”来判断字符串中的某个字符是否为汉字,并统计该字符串中汉字的数量。

关键技术:

Java中提供Pattern用于正则表达式的编译方式,该类的静态方法matches()可以执行正则表达式的匹配。该方法的声明如下:

public static booleanmatches(String regex,CharSequence)

该方法中,如果CharSequence与regex匹配,则返回true,否则返回false,其中regex表示“正则表达式”,CharSequence表示原字符串。

设计过程:

1)在项目中创建窗体类ChineseAmount。在窗体类中添加用户输入的文本域控件、显示汉字数量的文本框控件和计算汉字数量的“计算汉字”按钮。

2)编写“计算汉字”按钮的事件处理方法。在该方法中获取用户输入的字符串,然后,遍历字符串中的每一个字符,使用正则表达式判断字符是否为汉字,

再根据判断结果对汉字进行计数,最后把计数结果显示到界面文本框中。

关键代码如下:

private void do_button_actionPerformed(ActionEvent e) {

String text = chineseArea.getText();//获取用户输入

int amount = 0;//创建统计汉字的计数器

for (int i = 0; i < text.length(); i++) {//遍历字符串每一个字符

//使用正则表达式,判断字符是否为汉字编码

boolean matches = Pattern.matches("^[\u4E00-\u9FA5]{0,}$",""

+ text.charAt(i));

if (matches) {//如果是汉字

amount++;//则累加

}

}

numField.setText(amount + "");

}

完整代码如下:

package cn.str.opera;

//import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JTextArea;

import javax.swing.JLabel;

import javax.swing.JButton;

import javax.swing.JTextField;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import java.util.regex.Pattern;

public class ChineseAmount extends JFrame {

private JPanel contentPane;

private JTextArea chineseArea;

private JTextField numField;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

ChineseAmount frame = new ChineseAmount();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the frame.

*/

public ChineseAmount() {

setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100,100,450,300);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5,5,5));

setContentPane(contentPane);

contentPane.setLayout(null);

chineseArea = new JTextArea();

chineseArea.setBounds(115,20,300,133);

contentPane.add(chineseArea);

JLabel lblNewLabel = new JLabel("\u8F93\u5165\u4E00\u6BB5\u6587\u5B57:");

lblNewLabel.setBounds(10,22,95,33);

contentPane.add(lblNewLabel);

JButton btnNewButton = new JButton("\u8BA1\u7B97\u6C49\u5B57");

btnNewButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

do_button_actionPerformed(e);

}

});

btnNewButton.setBounds(115,193,93,23);

contentPane.add(btnNewButton);

numField = new JTextField();

numField.setBounds(237,194,66,21);

contentPane.add(numField);

numField.setColumns(10);

JLabel lblNewLabel_1 = new JLabel("\u4E2A\u6C49\u5B57");

lblNewLabel_1.setBounds(325,197,15);

contentPane.add(lblNewLabel_1);

}

private void do_button_actionPerformed(ActionEvent e) {

String text = chineseArea.getText();//获取用户输入

int amount = 0;//创建统计汉字的计数器

for (int i = 0; i < text.length(); i++) {//遍历字符串每一个字符

//使用正则表达式,判断字符是否为汉字编码

boolean matches = Pattern.matches("^[\u4E00-\u9FA5]{0,""

+ text.charAt(i));

if (matches) {//如果是汉字

amount++;//则累加

}

}

numField.setText(amount + "");

}

}

效果如下:

相关文章

总结

以上是编程之家为你收集整理的统计字符串中汉字的个数全部内容,希望文章能够帮你解决统计字符串中汉字的个数所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。