2016-11-01 3 views
1

EDIT:jLabelとjTextFieldとjButtonを持つjFrameを持っています。数字と単語を分割する方法(5John、12Annie、32Oliverとして)と別々に印刷する

JLabelの:---> 1

により1インクリメント自動で "作成者ID" を示してJTextFieldの "著者名"

のJButtonを入力する--->ユーザー: - - >これを押すと、jLabel Text(自動作成された "Author ID")とjTextField(ユーザーが入力したAuthor Nameを持つ)のテキストがシステムクリップボードにコピーされ、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、.....など

数字と単語(名前)を分けることができず、別々に印刷します。私はこれを試みたが、うまくいかなかった。

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); 
          } 

数字とワードを分割して別々に印刷する必要があります。

+2

Upvotedを。これはC言語ではとても簡単なことです.Javaは一歩前進、二歩前に戻るケースだと思います。 – Bathsheba

+0

重複している可能性がありますhttp://stackoverflow.com/a/8270824/5395773 – Venkat

+0

http://stackoverflow.com/questions/8270784/how-to-split-a-string-between-letters-and-digits-or-文字と数字の間にある数字と数字を連結する理由 –

答えて

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)); 
    } 
関連する問題