WUSTOJ 1261: 单位转换

参考资料

数字字符串拆分——百度知道

Description

BobLee最近在复习考研,在复习计算机组成原理的时候,遇到了一个问题。就是在计算机存储里面的单位转换。我们都知道1MB=1024KB,1KB=1024B,1B=8bit,他在做题的时候经常会遇到格式各样的,比如多少MB,KB,B什么的,但是都要转换为bit,题目做的太多他都迷茫了,现在需要你通过程序来帮他解决这个问题。

Input

输入为多行未化简的数据,如xMB,xKB,xB,xbit,(1<=x<=50)

Output

输出为换算过后的数据,ybit

Sample Input

1MB
1KB
1B
1bit

Sample Output

8388608bit
8192bit
8bit
1bit

代码

/**
* 用时:263ms
* @author PengHao
* @version 1.0
* @date 2019年4月12日 下午6:13:18
*/ import java.util.Scanner; public class Main { private Scanner sc;
private int x;
private String unit; // 读取输入 public Main() {
sc = new Scanner(System.in);
while(sc.hasNext()) {
unit = sc.next(); // 读取输入
// 将非数据字段清空后,剩下的数字字段转成int型
x = Integer.parseInt(unit.replaceAll("\\D+", ""));
unit = unit.replaceAll("\\d+", ""); // 单位
switch(unit) {
case "MB":
x *= 8388608;
break;
case "KB":
x *= 8192;
break;
case "B":
x *= 8;
break;
default:
}
System.out.println(x + "bit");
}
sc.close();
} public static void main(String[] args) {
new Main();
} }

代码扩展(读取输入)

Java中不能用如下方法读取数字和字符串(输入格式同Sample Input):

/**
* @author wowpH
*/
import java.util.Scanner; public class Main { private Scanner sc;
private int x;
private String unit; public Main() {
sc = new Scanner(System.in);
x = sc.nextInt();
unit = sc.next();
sc.close();
} public static void main(String[] args) {
new Main();
} }

因为中间没有空格,是无法分辨的。这里用的方法是先读取为字符串,再转成数字和单位。例如本题:输入1MB,下面代码的第17行将会得到"1",而第18行将会得到"MB"

/**
* @author wowpH
*/
import java.util.Scanner; public class Main { private Scanner sc;
private int x;
private String all;
private String number;
private String unit; public Main() {
sc = new Scanner(System.in);
all = sc.next();
number = all.replaceAll("\\D+", ""); // 将非数字字符删除,剩下的都是数字字符(0-9)
unit = all.replaceAll("\\d+", ""); // 将数字字符删除,剩下的都是非数字字符
x = Integer.parseInt(number); // 转成int型
sc.close();
} public static void main(String[] args) {
new Main();
} }

当然还有不少其他方法,这里不一一讨论,在此选取最简单的粗略介绍。


1261: 单位转换(Java)的更多相关文章

  1. Java实现蓝桥杯单位转换

    单位转换 [问题描述] BobLee最近在复习考研,在复习计算机组成原理的时候,遇到了一个问题.就是在计算机存储里面的单位转换. 我们都知道1MB=1024KB,1KB=1024B,1B=8bit,他 ...

  2. spring-boot前端参数单位转换

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import ja ...

  3. 单位转换类UnitUtil2

    package com.jlb.scan.util; import java.math.BigDecimal; import java.text.DecimalFormat; import com.j ...

  4. Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换

    Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换 { "@type":"java.lang.Runti ...

  5. Android 尺寸单位转换和屏幕适配相关

    Android 尺寸单位转换和屏幕适配相关 各种尺寸单位的意义 dp: Density-independent Pixels 一个抽象的单元,基于屏幕的物理密度. (dp和dip的意义相同,所以不用区 ...

  6. System.currentTimeMillis()计算方式与时间的单位转换

    目录[-] 一.时间的单位转换 二.System.currentTimeMillis()计算方式 一.时间的单位转换 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 ...

  7. paip.c++ 转换 java 解决方案

    paip.c++ 转换 java 解决方案 作者Attilax  艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/a ...

  8. 武汉科技大学ACM:1005: 单位转换

    Problem Description BobLee最近在复习考研,在复习计算 机组成原理的时候,遇到了一个问题.就是在计算机存储里面的单位转换.我们都知道1MB=1024KB,1KB=1024B,1 ...

  9. 【转】Android中dip(dp)与px之间单位转换

    Android中dip(dp)与px之间单位转换 dp这个单位可能对web开发的人比较陌生,因为一般都是使用px(像素)但是,现在在开始android应用和游戏后,基本上都转换成用dp作用为单位了,因 ...

随机推荐

  1. ICEM rpl文件简要讲解【转载】

    转载自:http://blog.sina.com.cn/s/blog_90affd9801016xti.html 很多人问ICEM的rpl怎样录制的问题,为什么CFX调用时老是报错,这里开个帖子简单讲 ...

  2. Git 工作流

    一.分类 1.集中式工作流 像 SVN 一样,集中式工作流以中央仓库作为项目所有修改的单点实体.所有修改都提交到 Master 这个分支上. 这种方式与 SVN 的主要区别就是开发人员有本地库.Git ...

  3. ST (Sparse Table:稀疏表)算法

    1541:[例 1]数列区间最大值 时间限制: 1000 ms         内存限制: 524288 KB提交数: 600     通过数: 207 [题目描述] 输入一串数字,给你 MM 个询问 ...

  4. OpenJudge计算概论-奇数求和

    /*=================================================== 奇数求和 总时间限制: 1000ms 内存限制: 65536kB 描述 计算非负整数 m 到 ...

  5. 在 Java 应用程序中加一些 Groovy 进来

    如果您一直在阅读这个系列,那么您应该已经看到有各种各样使用 Groovy 的有趣方式,Groovy 的主要优势之一就是它的生产力.Groovy 代码通常要比 Java 代码更容易编写,而且编写起来也更 ...

  6. VMware vSphere Client中启动虚拟机提示No boot filename received/Operating System not found解决方法

    昨天下载安装 .NET Framework 3.5 SP1解决了VMware vSphere Client安装问题后,今天需要远程连接服务器搭建一台虚拟机. 根据指引步骤进行下一步.下一步的操作完成后 ...

  7. angular 中的dom操作(原生JS)

    <h2>这是一个home组件--DOM操作演示</h2> <div id="box"> this is box </div> < ...

  8. python小白之np功能快速查

    np一些用法 np.a np.array([1,2,3],dtype=int)  #建立一个一维数组, np.array([[1,2,3],[2,3,4]])  #建立一个二维数组. np.arang ...

  9. lvs,nginx,haproxy的优缺点,适合场景

    Nginx/LVS/HAProxy的基于Linux的开源免费的负载均衡软件. LVS:使用集群技术和Linux操作系统实现一个高性能.高可用的服务器,它具有很好的可伸缩性.可靠性和可管理性,是一款强大 ...

  10. MySQL数据库之慢查询日志

    一.开启慢查询日志 通过show global variables like '%slow%' #查看MySQL慢查询日志是否开启 [root@mysqlmaster01 ~]# mysql --lo ...