精华内容
下载资源
问答
  • Java截取第二个字符“_“之前的数据

    千次阅读 2020-09-28 09:18:04
    然后找下一个点的位置,用的方法就是两个参数的indexOf,第一个参数是要匹配的字符第二个是开始的位置,这里开始的位置就是第一个点位置加上1,也就是第一个点之后开始找下一个点,找到第二个点的位置 str.indexOf...
     str.substring(0, str.indexOf("_", str.indexOf("_") + 1));
    

    代码分析:str.indexOf(".")+1 这一句是先找出第一个点的位置,然后在这个位置上加1,然后找下一个点的位置,用的方法就是两个参数的indexOf,第一个参数是要匹配的字符,第二个是开始的位置,这里开始的位置就是第一个点位置加上1,也就是第一个点之后开始找下一个点,找到第二个点的位置 str.indexOf(".",str.indexOf(".")+1 ))
    接着有起始位置 ,就是0,和第结束的位置就是第二个点的位置就可以截取了

    原文链接

    展开全文
  • 相信大家都自己封装过或者用过guava封装的Strings,但是有没有可以智能截取,比如说“截取整数第二个到倒数第二个”的字符串。你是否还需要自己写str.substring(1,str.length()-2)。如果是的话,请继续往下看吧。...

    前两篇博文简单分享了一下数字工具类,现在说说字符串工具类。

    相信大家都自己封装过或者用过guava封装的Strings,但是有没有可以智能截取,比如说“截取整数第二个到倒数第二个”的字符串。你是否还需要自己写str.substring(1,str.length()-2)。如果是的话,请继续往下看吧。暂时还未见过可以反向截取字符串的。一般都是substring(str, start, end)或者substring(str, len);而这里的参数都必须是正数,否则就会报错。所以为了改善这些方法,我简单封装了一下substring这个方法,提供了4种最常用的方法:

    subStrStart(String str, int end),正向截取

    subStrEnd(String str, int start),反向截取

    subStr(String str, int length),支持双向截取,length>0正向截取,<0,反向截取

    subStr(String str, int start, int end),支持双向截取,start、length>0正向截取,<0,反向截取。

    具体代码如下:

    /**

    * 从头开始截取

    *

    * @param str 字符串

    * @param end 结束位置

    * @return

    */

    public static String subStrStart(String str, int end){

    return subStr(str, 0, end);

    }

    /**

    * 从尾开始截取

    *

    * @param str 字符串

    * @param start 开始位置

    * @return

    */

    public static String subStrEnd(String str, int start){

    return subStr(str, str.length()-start, str.length());

    }

    /**

    * 截取字符串 (支持正向、反向截取)

    *

    * @param str 待截取的字符串

    * @param length 长度 ,>=0时,从头开始向后截取length长度的字符串;<0时,从尾开始向前截取length长度的字符串

    * @return 返回截取的字符串

    * @throws RuntimeException

    */

    public static String subStr(String str, int length) throws RuntimeException{

    if(str==null){

    throw new NullPointerException("字符串为null");

    }

    int len = str.length();

    if(len

    throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(length)));

    }

    if(length>=0){

    return subStr(str, 0,length);

    }else{

    return subStr(str, len-Math.abs(length), len);

    }

    }

    /**

    * 截取字符串 (支持正向、反向选择)

    *

    * @param str 待截取的字符串

    * @param start 起始索引 ,>=0时,从start开始截取;<0时,从length-|start|开始截取

    * @param end 结束索引 ,>=0时,从end结束截取;<0时,从length-|end|结束截取

    * @return 返回截取的字符串

    * @throws RuntimeException

    */

    public static String subStr(String str, int start, int end) throws RuntimeException{

    if(str==null){

    throw new NullPointerException("");

    }

    int len = str.length();

    int s = 0;//记录起始索引

    int e = 0;//记录结尾索引

    if(len

    throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(start)));

    }else if(start<0){

    s = len - Math.abs(start);

    }else if(start<0){

    s=0;

    }else{//>=0

    s = start;

    }

    if(len

    throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(end)));

    }else if (end <0){

    e = len - Math.abs(end);

    }else if (end==0){

    e = len;

    }else{//>=0

    e = end;

    }

    if(e

    throw new StringIndexOutOfBoundsException("截至索引小于起始索引:"+(e-s));

    }

    return str.substring(s, e);

    }

    写一个main方法来测试一下吧:

    public static void main(String[] args) {

    String str = "12345abcde";

    System.out.println("--------------------------------");

    System.out.println("正向截取长度为4,结果:\n" + StringsUtil.subStr(str, 4));

    System.out.println("反向截取长度为4,结果:\n" + StringsUtil.subStr(str, -4));

    System.out.println("--------------------------------");

    System.out.println("正向截取到第4个字符的位置,结果:\n" + StringsUtil.subStrStart(str, 4));

    System.out.println("反向截取到第4个字符的位置,结果:\n" + StringsUtil.subStrEnd(str, 4));

    System.out.println("--------------------------------");

    System.out.println("从第2个截取到第9个,结果:\n" + StringsUtil.subStr(str, 1, 9));

    System.out.println("从第2个截取到倒数第1个,结果:\n" + StringsUtil.subStr(str, 1, -1));

    System.out.println("从倒数第4个开始截取,结果:\n" + StringsUtil.subStr(str, -4, 0));

    System.out.println("从倒数第4个开始截取,结果:\n" + StringsUtil.subStr(str, -4, 10));

    }

    结果如下:

    nycs4c2i5na.jpg

    再附赠一个小功能吧:字符串数组用指定字符串链接。

    /**

    * 用指定字符串数组相连接,并返回

    *

    * @param strs 字符串数组

    * @param splitStr 连接数组的字符串

    * @return

    */

    public static String join(String[] strs, String splitStr){

    if(strs!=null){

    if(strs.length==1){

    return strs[0];

    }

    StringBuffer sb = new StringBuffer();

    for (String str : strs) {

    sb.append(str).append(splitStr);

    }

    if(sb.length()>0){

    sb.delete(sb.length()-splitStr.length(), sb.length());

    }

    return sb.toString();

    }

    return null;

    }

    效果如下:

    1799191c5e08bfbfdaaae192d8a550b4.png

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

    展开全文
  • 截取倒数第二个"/"之后的字符串 String path="/home/henry/Desktop/1.txt"; //获得"Desktop/1.txt",并且不需要前面的"/" String oo=path.substring(path.lastIndexOf("/",path.lastIndexOf("/")-1)+1); /...

    截取倒数第二个"/"之后的字符串

    	String path="/home/henry/Desktop/1.txt";
    	
    	//获得"Desktop/1.txt",并且不需要前面的"/"
        String oo=path.substring(path.lastIndexOf("/",path.lastIndexOf("/")-1)+1);
        //"+1"代表在定位时往后取一位,即去掉"/"
        //"-1"代表以"/"字符定位的位置向前取一位
        //从path.lastIndexOf("/")-1位置开始向前寻找倒数第二个"/"的位置
        
        System.out.println(oo);
    

    运行结果

    展开全文
  • 截取倒数第二个"/"之前的字符串 String path="/home/henry/Desktop/1.txt"; //获得""/home/henry",并且不需要前面的"/" String oo=path.substring(0,path.lastIndexOf("/",path.lastIndexOf("/")-1)); //"-1...

    截取倒数第二个"/"之前的字符串

    	String path="/home/henry/Desktop/1.txt";
    	
    	//获得""/home/henry",并且不需要前面的"/"
        String oo=path.substring(0,path.lastIndexOf("/",path.lastIndexOf("/")-1));
        //"-1"代表在定位时往前取一位,即去掉"/"
        //从path.lastIndexOf("/")-1位置开始向前寻找倒数第二个"/"的位置
        //最后用substring()方法来进行截取
        System.out.println(oo);
    

    截取倒数第二个"/"之后的字符串

    	String path="/home/henry/Desktop/1.txt";
    	
    	//获得"Desktop/1.txt",并且不需要前面的"/"
        String oo=path.substring(path.lastIndexOf("/",path.lastIndexOf("/")-1)+1);
        //"+1"代表在定位时往后取一位,即去掉"/"
        //"-1"代表以"/"字符定位的位置向前取一位
        //从path.lastIndexOf("/")-1位置开始向前寻找倒数第二个"/"的位置
        
        System.out.println(oo);
    

    在这里插入图片描述

    展开全文
  • 截取"_"之后字符串二、截取正数第二个"_"后面的内容 一、java截取某个字符之前或者之后的字符串: 1. 截取"_"之前字符串 代码如下(示例): //java截取某个字符之前的字符串 public static void substringTest01(){...
  • 下面是具体方法的代码:String s = "...)+1 这一句是先找出第一个点的位置,然后在这个位置上加1,然后找下一个点的位置,用的方法就是两个参数的indexOf,第一个参数是要匹配的字符第二个是开始的位置...
  • 取出正数第二个“@”后面的内容 截取@之前字符串 String str = "a.sp@aa"; String str1=str.substring(0, str.indexOf("?")); 截取@之后字符串 String str1=str.substring(0, str.indexOf("?")); String str2=str....
  • java截取个字符之间的数据

    千次阅读 2018-09-05 18:57:43
    今天朋友让我帮忙截取一下... 比如要求截取第二个’{“到倒数第二个}的数据 得到”{zgy:123,wsx:456}” 刚开始想在网上参考下别人的代码,但是没找到想要的,所以就自己写了一段 此方法可以截取第N个某字符到至...
  • java截取个字符串正数或倒数某个特定字符前后的内容 取出正数第二个“.”后面的内容 public class TestCode { public static void main(String[] args) { String str ="232ljsfsf....
  • 给一个字符串,如“abc{aaa}qwe{bbb}daw{ccsc}asdasd”,写程序,输出所有{}间的内容:aaa bbb ccsc 这里介绍两种方法,第一种最好理解应该属于暴力的一种吧,第二中使用序列化的解法 @Test public void demo1...
  • Java 截取字符

    2019-06-27 09:31:23
    Java 截取字符串 ccString=“1,2,3,4,c,f” String[] s = ccString.split(","); System.err.println(“第一个字符---------”+s[0]); System.err.println(“第二个字符---------”+s[1]);
  • 实现字母分离map将整个字符串当成一单词流来处理Map collect14 = Stream.of("hello word how are you").map(o-> o.split(""))//.flatMap(Arrays::stream).collect(Collectors.groupingBy(o ->o, Collecto...
  • Java 将一个字符重复n遍过程详解方法一:String.format("%0" + n + "d", 0).replace("0",s);方法:new String(new char[n]).replace("\0", s);方法三:(JAVA 8)String.join("", Collections.nCopies(n, s));方法四...
  • substring(参数)是java截取字符串的一方法。它有两种传参的方式:一种:public String substring(int beginIndex)返回一新的字符串,它是此字符串的一个子字符串,该字符串从指定索引出的字符开始,到此字符串...
  • substring(参数)是java截取字符串的一方法。它有两种传参的方式:一种:public String substring(int beginIndex)返回一新的字符串,它是此字符串的一个子字符串,该字符串从指定索引出的字符开始,到此字符串...
  • 相信大家都自己封装过或者用过guava封装的Strings,但是有没有可以智能截取,比如说“截取整数第二个到倒数第二个”的字符串。你是否还需要自己写str.substring(1,str.length()-2)。如果是的话,请继续往下看吧。...
  • 今天机试做了一道题: ...思路:首先要将第一个字符串中的每个字符截取出来,截取成单个字符,然后用contains方法进去比较,如果第二个字符串中包含有第一个字符串中的字符,就舍弃掉,如果不包含则保留使用Stri...
  • * 从一个字符串中取出首位相同但内部字符都最多只能出现一个的最长子字符串 第一层:从左边第一个字符开始遍历字符串,截取与这个字符可以组成首位相同的子字符串 * 第二层:将截取的首尾相同的字符串的首尾字符...
  • 关于java截取字符

    2017-05-23 12:34:27
    截取地址 从第二个“/”截取到地址末尾 old_filePathString.substring(old_filePathString.indexOf("/",old_filePathString.indexOf("/")+1)+1, old_filePathString.length());
  • java substring 截取字符

    万次阅读 2016-12-15 09:19:47
    substring(参数)是java截取字符串的一方法。 它有两种传参的方式: 一种:public String substring(int beginIndex) 返回一新的字符串,它是此字符串的一个子字符串,该字符串从指定索引出的字符开始,...
  • 例如:字符串=“房估字(2014)第YPQD0006号” 我想要得到 第与号 之间的“YPQD0006”,如何实现? 如下图,给你贴出了代码...2、第二个参数是结束字符的位置+1。(从0开始) indexof函数的作用是查找该字符串中的...
  • 题目:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的...三个方法第一在论坛上看到的,第二个自己写的,第三个也是博客上的。。。。package org.net.zone;import java.io.UnsupportedEn...
  • Java中的substring()方法有两个方法的重载,一个带一个参数的,一个带两个参数的...//从n开始,截取m-n个字符,条件(n通俗点:str.substring(intbegin,intend);从字符串开始位置(开始位置即为下标,下标是从0开始)截...
  • Java中的substring()方法有两个方法的重载,一个带一个...n作为第一个参数,必须小于字符串长度,因为这边是从包含n下边开始截取的,所以n肯定不能等于字符串整个位数长度,而下边的m作为第二个参数才可以等于。 ...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 174
精华内容 69
热门标签
关键字:

java截取第二个字符

java 订阅