首页 > 其他 > 详细

CSV文件转换

时间:2021-05-07 23:51:26      阅读:33      评论:0      收藏:0      [点我收藏+]

这道题目是shopee笔试的第二道题目,这道题比较幸运通过了。

大意如下:
有一段字符串如:
三星N05S\t02\n\晨光BM8N\t0x78
是从csv文件读取出来的,表示文具的名称和数量,‘\t‘用于分割文具名和数量,‘\n‘用于分割不同类别,数量可以用十进制或16进制表示,然后要求进行分割,输出结果,每一行分别是文具名加逗号加数量,如果有错误,输出null。

代码 java

import java.util.ArrayList;
import java.util.Scanner;

public class CSVFileTrans {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()){
            String input = sc.nextLine();

            String[] inputs = input.split("\\\\n");
            ArrayList<String> names = new ArrayList<>();
            ArrayList<Integer> nums = new ArrayList<>();
            for (String s : inputs) {
                System.out.println("s: " + s);

                String[] t = s.split("\\\\t");
                if(t.length!=2 || t[0].length()==0){
                    System.out.println("null");
                    return;
                }
                int n = 0;
                boolean flag = false;

                if(t[1].charAt(0)==‘0‘ && t[1].charAt(1)==‘x‘){
                    n = Integer.parseInt(t[1], 16);
                    flag = true;
                }else{
                    n = Integer.parseInt(t[1]);
                    flag = true;
                }
                if(flag){
                    names.add(t[0]);
                    nums.add(n);
                }
            }
            if(names.size()==inputs.length){
                for(int i=0; i<names.size(); i++){
                    System.out.println(names.get(i) + "," + nums.get(i));
                }
                return;
            }
            System.out.println("null");
        }
    }
}

两个需要注意的点吧,一个是Integer.parseInt()是可以parse十六进制的数的,需要用另一个参数16来表示,另一个就是反斜杠‘‘在java中需要用‘\‘来表示,而反斜杆本身是有特殊含义的字符,需要转义,比如在cpp中有‘\‘表示反斜杆,java中就需要表示成‘\\‘,第一对‘\‘表示转义,第二对‘\‘表示反斜杆,就是java的表示有点特殊。注意一下。

CSV文件转换

原文:https://www.cnblogs.com/zhengxch/p/14742677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!