2016-08-04 102 views
0

我具有其中所存储的数据是在该格式的文件details.txt如何将没有任何分隔符的字符串转换为逗号分隔的字符串?

 "571955NandhithaF1975-12-222011-12-06Mumbai"  

列是第一六位唯一ID,名称 ,(M/F)性别,出生日期,连接日期和地点 我必须使用逗号分隔符将其分成六列。 请帮我在这个问题上

+0

我不不要看你的文件片段中的逗号。到目前为止,您使用Mapreduce取得了哪些成就? – waltersu

+0

@waltersu他想要生成一个逗号分隔的字符串。 – JimHawkins

+0

@JimHawkins,你明白我的观点。我必须在map reduce中处理逗号分隔的数据。 –

回答

0

571955NandhithaF1975-12-222011-12-06Mumbai

拆分此类型的数据,我们必须使用字符串在java中功能在映射类下地图方法。
您可以使用substring(beginindex,endindex)方法从字符串获得的标识,其 像string id[6]=substring(0,5)返回6位数的字符串,它是ID(如ID长度是固定的,我们采取6)

您可以使用substring(beginindex)获取剩余的字符串。

接下来在病房中,您必须使用REGXP in java ..以及split(regexp)以获取名称,性别,dob,doj,loc。
但绝对有一些与java的锻炼发生。

经过this link for String functions in java.



希望这篇文章可以帮助。 如果任何建议或修改到相同也是可以接受的:)

+0

谢谢.. !!!!让我检查一下 –

1

通过每个线成一个正则表达式函数其中包含以下逻辑:

String expression = "571955NandhithaF1975-12-222011-12-06Mumbai"; 

    Pattern pattern = Pattern 
      .compile("([0-9]{6})([a-zA-Z]+)([M|F])([0-9]{4}-[0-9]{2}-[0-9]{2})([0-9]{4}-[0-9]{2}-[0-9]{2})([a-zA-Z0-9]+)"); 
    Matcher matcher = pattern.matcher(expression); 
    if (matcher.find()) { 
     //System.out.println(matcher.group()); 
     System.out.println(matcher.group(1)); 
     System.out.println(matcher.group(2)); 
     System.out.println(matcher.group(3)); 
     System.out.println(matcher.group(4)); 
     System.out.println(matcher.group(5)); 
     System.out.println(matcher.group(6)); 
    } 

输出:

571955 
Nandhitha 
F 
1975-12-22 
2011-12-06 
Mumbai 
相关问题