Java Tutorial/I18N/Normalizer

Материал из Java эксперт
Перейти к: навигация, поиск

Use Normalizer to Remove Accents

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.Normalizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class RemoveAccents extends JFrame {
  public RemoveAccents() {
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    JPanel pnl = new JPanel();
    pnl.add(new JLabel("Enter text"));
    final JTextField txtText;
    txtText = new JTextField("to be removed");
    pnl.add(txtText);
    JButton btnRemove = new JButton("Remove");
    ActionListener al;
    al = new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        String text = txtText.getText();
        text = Normalizer.normalize(text, Normalizer.Form.NFD);
        txtText.setText(text.replaceAll("[^\\p{ASCII}]", ""));
      }
    };
    btnRemove.addActionListener(al);
    pnl.add(btnRemove);
    getContentPane().add(pnl);
    pack();
    setVisible(true);
  }
  public static void main(String[] args) {
    new RemoveAccents();
  }
}