[2020.4.4]String的split方法使用总结

Java String的split方法总结
原创 夜雨落花 最后发布于2019-03-01 17:42:28 阅读数 1549 已收藏
展开

    String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组。
1、一般用法(默认第一个分隔符前和最后一个分割符后都是有值的)

    用一般的字符,例如@或,等符号做分隔符时:

   

String address="上海@上海市@闵行区@吴中路";
String[] splitAddr=address.split("@");
System.out.println(splitAddr [0]+splitAddr [1]+splitAddr [2]+splitAddr [3]);

2、需要转义的分隔符

    当使用* ^ : | . \等6个符号做分隔符时,上述6个符号转义字符,必须得加"\\",即split(“\\^”)等。第二个“\”是用来给这6种符号转义,第一个“\”是用来给第二个“\”转义。

  

  String address="上海*上海市*闵行区*吴中路";
    String[] splitAddr=address.split("\\*");  
    System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]);

    其中有个更特殊的,就是“\”。如果字符串中想要使用"\",就应该使用"\\"进行转义。也就是说,对于"a\b",应该写成"a\\b",而如果想要用split方法针对"\"进行拆分,应该使用"a\\b".split("\\\\")。
3、多个符号作为分隔符:

    可以用“|”字符作为连字符,把多个分隔符分隔的内容都区分开:

   

String address="上海^上海市@闵行区#吴中路";
    String[] splitAddr=address.split("\\^|@|#");
    System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3]);  

4、空值的存储

    如果split(String s)函数产生了空值,那么不会存到数组中。可以通过使用它的重载函数split(";",-1)实现空值的保存。这里的“;”只是作为分隔符的一个例子。注意:这里的空值是只null,空格不是空值,如

//字符串分割时,默认第一个(此处为“,”)前是有值的,但只会计算最后一个不为null的值。
//即前面的null会计入数组中,最后的连续null值都不计。
//可以使用split(",",-1)来获得包含全部null的数组
String string=",,1,2,3,,,";
String[] splitArr = string.split(",");
System.out.println(splitArr.length);//5

String string=",,1,2,3, ,,";
String[] splitArr = string.split(",");
System.out.println(splitArr.length);//6

String string=",,1,2,3,,, ";
String[] splitArr = string.split(",");
System.out.println(splitArr.length);//8

String string=",,1,2,3,,,";
String[] splitArr = string.split(",",-1);
System.out.println(splitArr.length);//8


————————————————
原文链接:https://blog.csdn.net/weixin_38569499/article/details/87947913

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,那么你可以按照以下步骤使用 Java 语言实现 Hadoop 编写 2020 年考研各高校开放专业数量统计: 1. 创建一个 Hadoop 项目,导入 Hadoop 相关的 jar 包。 2. 创建一个 Mapper 类,实现 Mapper 接口,重写 map 方法,在 map 方法中读取输入数据,根据数据中的高校信息和专业信息,把高校信息作为 key,专业信息作为 value 进行输出。 3. 创建一个 Reducer 类,实现 Reducer 接口,重写 reduce 方法,在 reduce 方法中统计每个高校开放的专业数量。 4. 在 main 方法中配置 Job,设置 Mapper、Reducer、输入路径、输出路径等信息。 5. 运行 Job,等待任务完成后,查看输出结果,即可得到 2020 年考研各高校开放专业数量的统计结果。 下面是示例代码: Mapper 类: ``` public class MyMapper extends Mapper<LongWritable, Text, Text, Text> { @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); String[] fields = line.split(","); String university = fields[0]; String subject = fields[1]; context.write(new Text(university), new Text(subject)); } } ``` Reducer 类: ``` public class MyReducer extends Reducer<Text, Text, Text, IntWritable> { @Override protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException, InterruptedException { int count = 0; for (Text value : values) { count++; } context.write(key, new IntWritable(count)); } } ``` main 方法: ``` public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "UniversitySubjectCount"); job.setJarByClass(UniversitySubjectCount.class); job.setMapperClass(MyMapper.class); job.setCombinerClass(MyReducer.class); job.setReducerClass(MyReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } ``` 注意:以上代码是一个简单的示例,需要根据实际情况进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值