JAVA程序练习---小车行走距离

LRUD分别表示左右上下,后面跟行驶距离,计算到原点的距离?

package 测试包;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class 小车行驶距离简化 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串如:LL10UU20L20U20U");
        String s = sc.nextLine();
        sc.close();
        Pattern p = Pattern.compile("[A-z][0-9]+");//正则表达式匹配有效的命令
        Matcher m = p.matcher(s);
        ArrayList<String> al = new ArrayList<String>();
        while (m.find()) {
            al.add(m.group());
        }
        int x = 0;
        int y = 0;
        for (int i = 0; i < al.size(); i++) {
            switch (al.get(i).charAt(0)) {
            case 'L':
                x = x
                        - Integer.parseInt(al.get(i).substring(1,
                                al.get(i).length()));
                break;
            case 'R':
                x = x
                        + Integer.parseInt(al.get(i).substring(1,
                                al.get(i).length()));
                break;
            case 'U':
                y = y
                        - Integer.parseInt(al.get(i).substring(1,
                                al.get(i).length()));
                break;
            case 'D':
                y = y
                        - Integer.parseInt(al.get(i).substring(1,
                                al.get(i).length()));
                break;
            default:
                break;
            }
        }
        System.out.println("有效的行驶指令是:" + al);
        System.out.println("小车的停止位置是:[" + x + "," + y + "]");
        System.out.println("行驶的距离是:"
                + Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)));
        // LL10UU20L20U20U
    }
}

输入:
LL10UU20L20U20U
输出:
请输入字符串如:LL10UU20L20U20U
LL10UU20L20U20U
有效的行驶指令是:[L10, U20, L20, U20]
小车的停止位置是:[-30,-40]
行驶的距离是:50.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值