MapReduce编程中常用的字符操作

本文主要用于记录自己在编写mapreduce程序时常用的一些方法,后期会不断更新,用于自己复习和给新手一些帮助。

字符串操作

        String str = "  12345";
//      字符串中是否包含某子字符串
        System.out.println(str.contains("123"));

//      返回索引位置
        System.out.println(str.indexOf("1"));

//      截取字符串,从索引0开始到索引3(包括前不包括后)   只有一个参数时表示从该索引一直截取到最后
        String str2 = str.substring(0, 3);
        System.out.println(str2);

//      截取第一个逗号以前的字符串
        String str1 = "1,2,3,4,5";
        String substring = str1.substring(0, str1.indexOf(","));
        System.out.println(substring);

//      字符串替换
        System.out.println(str.replace("123", "321"));

//      trim()去除字符串两边的空格  ltrim()去除左边的空格   rtrim()去除右边的空格
        System.out.println(str.trim());

//      ==比较的是2个字符串是否指向同一地址,equals()比较的是实际字符串,比如大小写,长度等

字符串数组操作

//      将字符串数组转化成字符串     import org.apache.commons.lang.StringUtils;
        String[] array = {"abc", "123", "45"}; 
        System.out.println(StringUtils.join(array,','));

        //字符串按,或;分割成数组
        String str = "abc,def;gh,ij;k;lm,no,p;qr,st";
        String[] temp = str.split("[,;]");
//      Arrays.toString()方法,数组输出为字符串 格式[abc, def, gh, ij, k, lm, no, p, qr, st]
        System.out.println(Arrays.toString(temp));

//      字符串数组的截取
        String[] a = {"a","b","c","d","e","f","g","h","i"};
        //包括前不包括后
        String[] b = Arrays.copyOfRange(a, 0, 5);
        System.out.println(StringUtils.join(b,","));

StringBuilder操作

//      String 是不可变的对象,经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响
//      StringBuilder线程不安全的(用在字符串缓冲区被单个线程使用的时候)  优先考虑使用,速度快
//      StringBuffer线程安全的(用于多线程)            
//      StringBuilder sb = new StringBuilder();
//      在最后追加
//      sb.append(1);
//      sb.append(2);
//      在索引位置前插入
//      sb.insert(1, "a");
//      删除指定索引位置的字符   删除最后一个字符
//      sb.deleteCharAt(sb.length()-1);
//      删除指定索引的字符串,包括前不包括后
//      sb.delete(0, 1);
//      System.out.println(sb.toString());

输出文件中文乱码问题

mapreduce处理的文字格式都是utf-8,如果输入的正文编码格式是gbk,可以自定义方法,将其转为utf-8

    // 处理gbk格式的输入文件 Text text1 = transformTextToUTF8(value, "gbk");
    public static Text transformTextToUTF8(Text text, String encoding) {
        String value = null;
        try {
            value = new String(text.getBytes(), 0, text.getLength(), encoding);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return new Text(value);
    }

猜你喜欢

转载自www.cnblogs.com/52mm/p/p14.html