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);}

转载于:https://www.cnblogs.com/52mm/p/p14.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465938.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用单片机制作简单的频率计

点击上方“果果小师弟”,选择“置顶/星标公众号”干货福利,第一时间送达!摘要:利用定时器产生PWM波。然后利用32的外部中断和定时器来测量32输出的波形 硬件:STM32F103C8T6核心板、示波器、串口调试助手 所用到的的引脚…

每日一题(20)——malloc与free(一)

void GetMemory(char *p) {p (char *)malloc(100); }void Test(void) {char *str NULL;GetMemory(str);strcpy(str, "hello world");printf(str); } 1、指出编程错误 2、指出错误后果 3、指出纠正方法 分析: 1、调用GetMemory( str )后,…

gentoo ffmpeg+mencoder快速搭建视频处理系统笔记

软件说明:MP3支持:lamexvid支持:xvidH264/AVC支持:x264AC3支持:liba52MPEG4 ACC支持:faac、faad23GPP AMR Floating point 和 AMR-Wideband支持:libamrnb、libamrwbemerge lame libogg libvorbi…

深入理解Linux内核之内核抢占

1.开场白环境:处理器架构:arm64内核源码:linux-5.11ubuntu版本:20.04.1代码阅读工具:vimctagscscope我们或许经常听说过内核抢占,可是我们是否真正理解它呢?内核抢占和抢占式内核究竟有什么关系…

Python+Selenium学习笔记10 - send_keys上传文件

在火狐浏览器上传文件 上传前,同一个HTML文件在火狐和Edge浏览器显示有些不同 这是Firefox浏览器的显示 这是Edge浏览器 上传后 1 # coding utf-82 3 from selenium import webdriver4 import os5 import time6 7 dr webdriver.Firefox()8 file_path "file:…

不错,又有东西可以领!顺带开发个炫彩灯

什么是涂鸦Arduino SDK?Arduino 是全球最流行的开源硬件平台,涂鸦官方推出的 Arduino 开发驱动库,使用任意 Arduino 开发板涂鸦通用模组即可快速实现设备联网,开发属于自己的 IoT 项目。本次实战营适合你吗?没基础 —— Arduino 开发需要掌…

每日一题(21)——malloc与free(二)

char *GetMemory(void) {char p[] "hello world";return p; }void Test(void) {char *str NULL;str GetMemory();printf(str); }1、指出编程错误 2、指出错误后果 3、指出纠正方法分析: 运行结果可能会乱码,因为GetMemory返回的是指向“栈…

GNS3从入门到精通

GNS3是一款优秀的具有图形化界面的模拟器。可以运行在多平台上(Windows,Linux,MacOS等)。其最大的特点就是搭建拓扑极其简单,且支持保存startup-config,供下次实验中继续导入使用,而且所有设备导…

Android App优化之ANR详解

引言 背景:Android App优化, 要怎么做?Android App优化之性能分析工具Android App优化之提升你的App启动速度之理论基础Android App优化之提升你的App启动速度之实例挑战Android App优化之Layout怎么摆Android App优化之ANR详解Android App优化之消除卡顿Android App优化之内存…

面试官让你用C语言实现大数相乘,慌吗?

在之前的笔试题解析里面,我写了大数相加的问题,这里再剖析一个大数相乘,顾名思义,大数相乘就是这个数已经大到最大的数据类型都没有办法保存了。我们看看最大的数据类型可以保存多大的数据。#include "stdio.h" #includ…

写给偷偷老去的80后

喜欢隐身了,不怎么爱在群里发言了    同学聚会必修的两个项目:吃饭,    小孩都开始叫自己叔 叔或者阿姨了,虽然经常不大情愿地反驳着:叫姐姐,叫哥哥    永远寂寞,不管你是一人独处时&#xff0c…

每日一题(22)——malloc与free(三)

void GetMemory(char **p, int num) {*p (char *)malloc(num); }void Test(void) {char *str NULL;GetMemory(&str, 100);strcpy(str, "hello world");printf(str); }1、指出编程错误 2、指出错误后果 3、指出纠正方法 分析: 内存只分配&#xff…

每周分享之cookie详解

本章从JS方向讲解cookie的使用。(实质上后端代码也是差不多用法,无非读取和设置两块) 基本用法:document.cookie"usernamepengpeng"; 修改的时候也是这句,重新赋值即可。 一般的,cookie是记域名的…

每天都用,但是你一定不知道麦克风的灵敏度是什么

我们讨论音频器件的时候,就不得不去讨论灵敏度,麦克风、喇叭、蜂鸣器这些器件都会涉及到灵敏度。灵敏度体现的是输出和输入的关系,因为和声音有关,我们必须要知道声压,理解灵敏度、测量灵敏度,并从中选择合…

查找乱码字符串的SQL

昨天系统导数据库,一不小心把nls_language设错了,结果导出来的函数和过程里面的中文字符串中的字符都变成问号了(?)。 结果业务部门报告,好多报表里面的内容都变成问号了,这下麻烦了。 首要问题…

每日一题(23)——malloc与free(四)

void Test(void) {char *str (char *)malloc(100);strcpy(str, "hello");free(str);if(str ! NULL){strcpy(str, "world");printf(str);} }1、指出编程错误 2、指出错误后果 3、指出纠正方法 分析: 篡改动态内存区的内容,后果难以…

三大类sql语句——该记录是本人以前微博上的文章

一、DML语句二、DDL语句三、事务控制语句一、DML语句-Data Mulipulation LanguageDML语句数据操作野菊执行后会生成一个事务,事务需要提交才能够永久生效,在commit前是可以进行回滚撤销操作的!1、insert into 插入语句(1&#xff…

邓总的vim配置,需要的自己拿走~

我比较喜欢直接用source insight看代码,不过邓总很喜欢用vim,今天特意让他整理了他的vim 配置,喜欢的同学可以自行下载。在公众号后台回复「vim」获取下载链接VIM 配置查看本机 VIM cscope ctagsvim Ubuntu自带,cscope 、ctags…

html嵌套html解决办法(object/object)

后台管理系统多用到了页面嵌套页面的场景&#xff0c;下面是我在工作中解决的方法&#xff0c;利用<object></object>的data属性&#xff0c;下面试w3c的介绍&#xff1a; data 属性用于指定供对象处理的数据文件的 URL。 该属性的值是文件的 URL&#xff0c;该 UR…

每日一题(24)—— const

关键字const是什么含意&#xff1f; 只读变量&#xff1b;const int a; int const a; const int *a; int * const a; int const * a const; 前两个的作用是一样&#xff0c;a是一个常整型数。第三个意味着a是一个指向常整型数的指针&#xff08;也就是&#xff0c;整型…