java

package day02;

import java.awt.BorderLayout;

public class Lucky extends JFrame {

    private JPanel contentPane;
    private JTextField textField;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Lucky frame = new Lucky();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Lucky() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        final JTextArea textArea_1 = new JTextArea();
        textArea_1.setBounds(175, 21, 158, 205);
        contentPane.add(textArea_1);
        
        
        final JTextArea textArea = new JTextArea();
        textArea.setBounds(10, 65, 135, 161);
        contentPane.add(textArea);
        
        JButton btnNewButton_1 = new JButton("\u9000\u51FA");
        btnNewButton_1.setBounds(341, 186, 93, 23);
        contentPane.add(btnNewButton_1);
        
        textField = new JTextField();
        textField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                if(e.getKeyChar()!='\n')return;
                String name=textField.getText();
                if(name.isEmpty())return;
                textArea.append(name+"\n");
                textField.selectAll();
            }
        });
        textField.setBounds(10, 22, 135, 21);
        contentPane.add(textField);
        textField.setColumns(10);
        
        
        
        JButton btnNewButton = new JButton("\u62BD\u53D6");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String perString=textArea.getText();
                String[] arr=perString.split("\n{1,}");
                int index=(int)(Math.random()*arr.length);
                String out="本次抽取观众人员:\n\t%1$s\n恭喜%1$s成为本次观众抽奖的大奖得主。"
                +"\n\n我们将为%1$s颁发:\n\t过期的二十箱酸奶。";
                String info=String.format(out, arr[index]);
                textArea_1.setText(info);
            }
        });
        btnNewButton.setBounds(341, 153, 93, 23);
        contentPane.add(btnNewButton);
        
    }
}

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。

format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。

format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。

显示不同转换符实现不同数据类型到字符串的转换,如图所示。

转  换  符

说    明 

示    例

%s

字符串类型

"mingrisoft"

%c

字符类型

'm'

%b

布尔类型

true

%d

整数类型(十进制)

99

%x

整数类型(十六进制)

FF

%o

整数类型(八进制)

77

%f

浮点类型

99.99

%a

十六进制浮点类型

FF.35AE

%e

指数类型

9.38e+5

%g

通用浮点类型(f和e类型中较短的)

 

%h

散列码

 

%%

百分比类型

%n

换行符

 

%tx

日期与时间类型(x代表不同的日期与时间转换符

 

详情http://blog.csdn.net/lonely_fireworks/article/details/7962171

还有就是关于.split("\n{1,}");按照 至少1个“\n”来分割

posted @ 2016-04-08 15:12  武略  阅读(215)  评论(0编辑  收藏  举报