P5705 浮点数数字反转

输入一个不小于 100 且小于 1000,同时包括小数点后一位的一个浮点数,例如 123.4 ,要求把这个数字翻转过来,变成 4.321 并输出。

1.首先需要明白底层就是问字符串,我需要将其分割两部分,以小数点为界,第一部分为整数,第二部分为小数,再将其反转,在组合到一起;

import java.util.Scanner;

public class ReverseFloat {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入一个浮点数
        System.out.print("请输入一个浮点数(不小于100且小于1000,包含小数点后一位):");
        String input = scanner.nextLine(); // 读取输入的字符串

        // 检查输入格式是否正确
        if (!input.matches("\\d{3}\\.\\d")) {
            System.out.println("输入格式错误,请输入一个不小于100且小于1000的浮点数,包含小数点后一位。");
            return;
        }

        // 分离整数部分和小数部分
        String[] parts = input.split("\\.");
        String integerPart = parts[0]; // 整数部分
        String decimalPart = parts[1]; // 小数部分

        // 翻转整数部分和小数部分
        String reversedIntegerPart = new StringBuilder(integerPart).reverse().toString();
        String reversedDecimalPart = new StringBuilder(decimalPart).reverse().toString();

        // 组合翻转后的结果
        String result = reversedDecimalPart + "." + reversedIntegerPart;

        // 输出结果
        System.out.println(result);

        scanner.close(); // 关闭扫描器
    }
}

if (!input.matches("\\d{3}\\.\\d")) 是用来检查输入的字符串是否符合一个特定的浮点数格式。具体来说,这个正则表达式的含义是:

  • \\d{3}:表示必须有3个连续的数字\\d 是正则表达式中表示“任意数字(0-9)”的符号,{3} 表示“恰好出现3次”。

  • \\.:表示必须有一个小数点。\\ 是转义字符,因为在正则表达式中,. 是一个特殊字符(表示任意字符),所以需要用 \\ 来转义,使其表示字面意义上的小数点。

  • \\d:表示小数点后面必须有1个数字

  • StringBuilder是Java中用于操作字符串的一个类,它提供了许多方便的方法来修改字符串。与String不同,StringBuilder是可变的,这意味着你可以直接修改它的内容,而不会像String那样每次修改都会创建一个新的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值