Java编程练习Day12--》格式化字符串

Java编程练习Day12–》格式化字符

String类格式化当前日期


实例说明

在输出日期信息时,经常需要输出不同格式的日期,本实例中介绍了String字符串类中的日期格式化方法,实例使用不同的方式输出String类的日期格式参数值,组合这些值可以实现特殊格式的日期字符串。

使用String类的format()方法不但可以完成日期的格式化,也可以实现时间的格式化。时间格式化转换符要比日期转换符更多,更精确,他可以将时间格式化为时,分,秒,毫秒。

时间格式化转换符

转换符说明示例
%tH2位数字的24小时制的小时(00~23)14
%tI2位数字的12小时制的小时(01~12)05
%tk1位数字的24小时制的小时(0~23)5
%tl1位数字的12小时制的小时(1~12)10
%tM2位数字的分钟(00~59)05
%tS2位数字的秒数(00~60)12
%tL3位数字的毫秒数(000~999)920
%tN9位数字的微秒数(000000000~999999999)062000000000
%tp指定语言环境下上午或下午标记下午、pm
%tz相对于GMT RFC 82 格式的数字时区偏移量+0800
%tZ时区缩写形式的字符串CST
%ts1970-01-01 00:00:00 至现在经过的秒数120642666
%tQ1970-01-01 00:00:00 至现在经过的毫秒数1206426737453

测试代码


import java.util.Date;
import java.util.Locale;

/**
 * @author nanqi-code
 * @create 2021/8/30-16:44
 */
public class Example {
    public static void main(String[] args) {
        Date today = new Date();
        //格式化后的字符串为月份的英文缩写
        String a = String.format(Locale.US, "%tb",today);
        System.out.println("格式化后的字符串为月份的英文缩写:"+a);
        //格式化后的字符串为月份的英文全写
        String b = String.format(Locale.US, "%tB",today);
        System.out.println("格式化后的字符串为月份的英文全写:"+b);
        //格式化后的字符串为星期(如周一)
        String c =String.format("%ta", today);
        System.out.println("月格式化后的字符串为星期(如周一):"+c);
        //格式化后的字符串为星期(如星期一)
        String d =String.format("%tA", today);
        System.out.println("月格式化后的字符串为星期(如星期一):"+d);
        //格式化后的字符串为4位的年份值
        String e = String.format("%tY",today);
        System.out.println("格式化后的字符串为4位的年份值:"+e);
        //格式化后的字符串为2位的年份值
        String f = String.format("%ty",today);
        System.out.println("格式化后的字符串为2位的年份值:"+f);
        //格式化后的字符串为2位的月份值
        String g = String.format("%tm",today);
        System.out.println("格式化后的字符串为2位的月份值:"+g);
        //格式化后的字符串为2位的日期值
        String h = String.format("%td",today);
        System.out.println("格式化后的字符串为2位的日期值:"+h);
        //格式化后的字符串为1位的日期值
        String i = String.format("%te",today);
        System.out.println("格式化后的字符串为1位的日期值:"+i);
    }
}

运行结果

在这里插入图片描述

字符串大小写转换


实例说明

在程序设计的过程中,经常会遇到一些情况,在验证用户登录时,如果用户名不区分大小写,那么在代码中,应当使用一种方法排除字母大小写的因素,然后再对比数据库中的用户名与用户输入的用户名是否相等。可以先将数据库中的用户名全部大写,再将用户输入的用户名全部大写,最后对比是否相等。本实例所使用的技术可以方便的将字符串中的字母全部转换成大写或小写。

测试代码


import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @author nanqi-code
 * @create 2021/8/30-17:01
 */
public class ToggleCaseWindow extends JFrame {

    //创建文本框组件
    JTextField text1;
    JTextField text2;
    //创建转换按钮
    JButton toCase;
    //创建单选框组件
    JRadioButton toUpper;
    JRadioButton toLower;
    //创建单选框按钮组
    ButtonGroup group;

    public ToggleCaseWindow(){
        text1 = new JTextField(10);
        text2 = new JTextField(10);
        toCase = new JButton("转换");
        toUpper = new JRadioButton("大写");
        toLower = new JRadioButton("小写");
        group = new ButtonGroup();

        //设置窗体的标题
        setTitle("字符串大小写转换");
        //设置窗体的关闭方式
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置窗体可见
        setVisible(true);
        //设置窗体的布局为空布局
        setLayout(null);
        //设置窗体在窗口中的位置和大小
        setBounds(250, 250, 500, 245);

        //设置各个组件的位置
        text1.setBounds(20,20,420,35);
        text2.setBounds(20,135,420,35);
        toCase.setBounds(20, 86, 85, 30);
        toUpper.setBounds(130,86,50,30);
        toLower.setBounds(240,86,50,30);

        //为转换按钮添加时间监听器
        toCase.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //判断当前单选框是否选中大写按钮
                boolean upper = group.isSelected(toUpper.getModel());
                //获取输入文本
                String text = text1.getText();
                if(upper){
                    //将文本内容转换成大写
                    text2.setText(text.toUpperCase());
                }else{
                    //将文本内容转换成小写
                    text2.setText(text.toLowerCase());
                }
            }
        });

        //将单选按钮添加到按钮组中
        group.add(toUpper);
        group.add(toLower);
        //将各个组件添加到窗体中
        add(text1);
        add(text2);
        add(toCase);
        add(toUpper);
        add(toLower);

    }

    public static void main(String[] args) {
        new ToggleCaseWindow();
    }
}

运行结果

在这里插入图片描述
在这里插入图片描述

字符与Unicode码的转换


实例说明

Unicode是一种字符编码,它可以显示各国语言的各种文字,标点,制表符等所有字符,也是现今最通用的字节编码系统。在程序设计中,可以方便的将字符串转换为Unicode码,也可以将Unicode码转换为字符。
本实例使用字符串对象的toCharArray()方法获取字符数组,数组中的每一个元素都是字符串的一部分。

该方法声明如下:

public char[] toCharArray()
该方法可以把字符串中的每个字符拆分,方法的返回值就是字符串中每个字符组成的字符数组。

测试代码

package com.zhang.exer.day12;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;

/**
 * @author nanqi-code
 * @create 2021/8/30-17:58
 */
public class CharacterASCII extends JFrame {
    JLabel tip;
    JTextField text1;
    JTextField text2;
    JFormattedTextField text3;
    JTextField text4;
    JButton button1;
    JButton button2;
    public CharacterASCII(){
        tip = new JLabel("字符与Unicode码转换");
        text1 = new JTextField(10);
        text2 = new JTextField(10);
        text3 = new JFormattedTextField(NumberFormat.getIntegerInstance());
        text4 = new JTextField(10);
        button1 = new JButton("转换成Unicode编码");
        button2 = new JButton("转换为字符");

        //设置窗体的标题
        setTitle("字符与编码的转换");
        //设置窗体的关闭方式
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置窗体可见
        setVisible(true);
        //设置窗体的布局为空布局
        setLayout(null);
        //设置窗体在窗口中的位置和大小
        setBounds(250, 250, 758, 225);

        //设置各个组件的位置
        tip.setBounds(20, 20, 150, 30);
        text1.setBounds(20,60,235,35);
        button1.setBounds(285,60,160,30);
        text2.setBounds(480,60,235,35);
        text3.setBounds(20,100,235,35);
        button2.setBounds(285,100,160,30);
        text4.setBounds(480,100,235,35);

        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String text = text1.getText();//获取用户输入的字符串
                char[] charArray = text.toCharArray();//获取字符串的字符数组
                StringBuilder builder = new StringBuilder();//创建字符串构造器
                for (char c:charArray
                     ) {
                    builder.append((int)c+" ");//连接各个字符的编码
                }
                text2.setText(builder.toString());//结果输出到文本框
            }
        });

        button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Number value = (Number) text3.getValue();//获取用户输入的Unicode编码
                long code = value.longValue();//获取输入数字的long类型值
                text4.setText((char)code+"");
            }
        });

        add(text1);
        add(text2);
        add(text3);
        add(text4);
        add(button1);
        add(button2);
        add(tip);

    }

    public static void main(String[] args) {
        new CharacterASCII();
    }

}

运行结果

在这里插入图片描述

往日精彩

Java编程练习Day11–》格式化字符串
Java编程练习Day10–》数组排序与查询02
Java编程练习Day09–》数组排序与查询01
Java编程练习Day08
Java编程练习Day07
Java编程练习Day06
Java编程练习Day05
Java编程练习Day04
Java编程练习Day03
Java编程练习Day02
Java编程练习Day01

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

难啊楠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值