首页 文章

如何分割一个完全相同的数字和一个单词(如:5John,12Annie,32Oliver)并分别打印出来

提问于
浏览
1

编辑:我有一个jFrame与jLabel和一个jTextField和一个jButton .

jLabel:--->显示“作者ID”,它自动递增1比1 .

jTextField:--->用户输入“作者姓名”

jButton:--->按下它时,它会将jLabel文本(自动递增的“作者ID”)和jTextField中的文本(具有用户输入的作者名称)复制到系统剪贴板中,如下所示,jFrame将处理点击jButton后 .

这是来自jLabel和jTextfield的文本将复制到系统剪贴板的代码 .

String authorId = jLabel2.getText();
    String authorName = jTextField1.getText();

    String both = authorId + authorName;

    StringSelection stringSelection = new StringSelection(both);

    Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
    clpbrd.setContents(stringSelection, null);

    this.dispose();

如果我们在用户输入jTextfield上的名称时以不同的间隔打印剪贴板文本,它将打印为:

1John,2Nick,3Harold,............,25Sarah,.......,104Marie,.....等等

但我无法分割数字和Word(名称)并单独打印它们 . 我尝试了这个,但它没有用 .

try {
       String data =(String)Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
       System.out.println(data);

} catch (UnsupportedFlavorException ex) {
       Logger.getLogger(FindAuthor.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
       Logger.getLogger(FindAuthor.class.getName()).log(Level.SEVERE, null, ex);
                            }

我需要分割数字和单词并分别打印它们 .

1 回答

  • 1

    你可以使用正则表达式,例如:

    String example = "104Marie";
        Pattern p = Pattern.compile("(\\d+)(\\w+)");
        Matcher m = p.matcher(example);
    
        if (m.find()) {
            // id
            System.out.println(m.group(1));
            // name
            System.out.println(m.group(2));
        }
    

相关问题