zoukankan      html  css  js  c++  java
  • 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);
    	}
  • 相关阅读:
    mysql uodate 报错 You can't specify target table '**' for update in FROM clause
    设置mysql InnoDB存储引擎下取消自动提交事务
    SQL插入数据--数据中的某一列来自本表中的数据
    服务器部署静态页面
    json 和 jsonp
    Git 回滚
    java 自定义注解
    java BlockingQueque的多种实现
    java 多线程之ReentrantLock与condition
    storm 架构原理
  • 原文地址:https://www.cnblogs.com/52mm/p/p14.html
Copyright © 2011-2022 走看看