java 在带有数字、字母、字符组成的字符串分割出从数字开始到数字结束的固定字符串

一串字符串,例如:bac-cd-de-1.0.1.txt。我想截取其中的1.0.1应该怎样截取?
数字前面的顺序可能是不固定,有可能也有:aaa-bbb-1.0.2.txt截取1.0.2这种。
中间的数字有可能是不固定的,也可能是1.10.12这种不只是单个数字。
对于这种数字前面的字符串不是固定数量的这种字符串怎样分割。
能不能从数字开始到数字结束,截取数字中间的一部分呢?
但是他后面的.txt是一定在的。

7个回答

用字符串lastIndexOf获取最后一个分隔符“-”的索引,然后再用lastIndexOf获取后缀名的.的索引位置,最后进行截取即可

正则表达式看看。应该是可以的

ladysosoli
ladysosoli 谢谢大佬~但是正则比较难我还得再研究一下,这个问题就先用简单的索引解决一下
6 个月之前 回复

正则太难学 for循环太麻烦 看你的两组数据是有一定规则的 你可以考虑:
1、如果数字位数是固定的 你可以使用substring 先截取后几位(例如先取出 1.0.1.txt) 然后再把.txt截取掉
2、如果数据位数不是固定的 但.的个数固定 你可以先用数据接收 split 然后收到拼接

小白想法 就这几个字节 速度不用考虑 ;
想适用性强 那只能慢慢看正则了。

ladysosoli
ladysosoli 谢谢~我试过了了split,还需要再把分开的数字再拼接成字符串,用索引位置的方式更好一点
6 个月之前 回复

数字位数固定,结果str2=(str1.substring(9)).substring(0,5)
数字串长不固定但前面一定有“-”字符,可以先求出后面的总串长 sl=str1.length()-str1.lastIndexOf("-");然后str2=(str1.substring(sl)).substring(0,sl-4)

ladysosoli
ladysosoli 谢谢大佬~
6 个月之前 回复

使用这个正则 String pattern = "([\d]+\.)+";
然后截取最后一个"."之前的所有字符串

        String str = "XXX-1.0.2.txt";
        String newstr = str.substring(str.length - 9);
        newstr = newstr.substring(0, 5);
        alert(newstr);

代码如下:

package com.qianqiangongzi.utils;

import org.apache.commons.lang3.StringUtils;

/**
 * 字符串分割
 * 
 * @author 谦谦公子爱编程
 *
 */
public class StringSplitUtils {
    public static void main(String[] args) {
        System.out.println(stringSplit("bac-cd-de-1.0.1.txt"));
        System.out.println(stringSplit("aaa-bbb-1.0.2.txt"));
        System.out.println(stringSplit("bac-cd-de-1.0.12.txt"));
    }

    /**
     * 获取固定格式的版本信息
     * 
     * @param content
     * @return
     */
    private static String stringSplit(String content) {
        String[] arrs = content.split("-");
        String filename = arrs[arrs.length - 1];
        String filePostfix = getFilePostfixContainDot(filename);
        return StringUtils.remove(filename, filePostfix);
    }

    /**
     * 获得文件的后缀
     * 
     * @param fileName
     * @return 小写的文件后缀
     */
    public static String getFilePostfix(String fileName) {
        String postfix = null;
        if (fileName.indexOf(".") != -1) {
            postfix = fileName.substring(fileName.lastIndexOf(".") + 1);
        }
        return postfix == "" ? "" : postfix.toLowerCase();
    }

    /**
     * 获取文件后缀包含"." 如".txt"
     * 
     * @param fileName
     * @return 没有后缀返回null
     */
    public static String getFilePostfixContainDot(String fileName) {
        String postfix = getFilePostfix(fileName);
        return postfix == "" ? "" : "." + postfix;
    }
}

运行结果:
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
正则匹配字母、数字与字符组成的字符串
正则匹配字母、数字与字符组成的字符串,三者中每一种至少存在在一个,字母大小写均可,限制长度(本文12到16位)。 在开发中因为需求需要,网上查阅了不少,自己也写了尝试,但是没有一个满足需求,最后通过网上的资料自己优化总结了一下,基本满足了需求。 正则表达式1:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*~`\(\)_\-=+\\\|\}\]\
Java生成带有大小写字母及数字的字符串
Java生成带有大小写字母及数字的字符串 文章目录Java生成带有大小写字母及数字的字符串执行结果如下: 我们在日常开发中,经常用到要生成随机字符串的操作。本文提供了一个简单的方法,用来实现快速生成含有大小写字母及数字的随机字符串,并且可以指定长度。不依赖第三方jar包,完全使用JDK自带的工具类。 package com.csdn.util; import java.util.Rand...
字符串分割字母aa和数字123456
以下程序rn Dim i As Integerrn Dim a As Doublern Text1 = "abc1234.56bcd"rn For i = 1 To Len(Text1)rn Text2 = Mid(Text1, i, Len(Text1) - i + 1)rn If Text2 < 48 And Text2 > 65 Thenrn Exit Forrn End Ifrn Nextrn Debug.Print Text2rn返回1234.56rnrn我的要求是rn 将字符串 CBL0.6, 分离为字符串cbl和数字0.6rn 字符串BL 和数字25rn以上程序如何改。rn
跪求sum 带有字母 数字 标点符号的 字符串
37360支、36840支rn37440支、36440支rn37750支rn76325人份rnrnrn能否 用一条sql 语句求和!
一个字母和数字组成的随机数生成程序
字母和数字组成的随机数生成程序,可以字母和数字个数任选。
“冒泡排序”出数字和字符
WAY 1: 数字型 *#include&amp;lt;stdio.h&amp;gt; int main() { int a[15]; int i,j; printf(“please input 15 numbers:\n”); for(i=0;i&amp;lt;15;i++) scanf(&quot;%d&quot;,&amp;amp;a[i]); printf(&quot;\n&quot;); for(j=0;j&amp;lt;14;j++) for(i=0;i&amp;l...
Java生成字母和数字组成的随机字符串
    在业务开发过程中经常遇到生成随机字符串,用于密钥、密码、口令或其他标识使用。     下面就介绍一下通过Java程序生成这些随机字符串的方法。      1. 随机生成n位由字母或数字组成的字符串 public static String getRandomCharacterAndNumber(int length) { String val = &quot;&quot;; ...
汇编程序:输数字,出字母
【任务】输入1-9的数字,以其作为序号,输出对应的字母。例如,输入1,输出a;而输入4,输出d 【参考解答】 assume cs:code code segment string db 'abcdefghij' start: ...
获取固定个数的字符和数字的字符串
/* * @此方法适合返回个数较少的,如果超过一定个数会有问题 * @$string 字符串源 * @最后要返回的字符串包含 字符个数 * @最后要返回的字符串包含 数字个数 */ function getFixedLengthStr($string,$strNum=2,$digitNum=3){ $md5Str = md5($string); //md5加密字符串 $l...
java产生由数字字母组成的随机字符
java产生由数字字母组成的随机字符
统计出字符串中字母、空格、数字和其他字符的个数
def team(*text): one = len(text) for i in range(one): letters = 0 space = 0 digit = 0 others = 0 for each in text[i]: if each.isalpha() == True: letters += 1 elif each.isspace() == True: space += 1 el...
数字+字符的字符串 修改数字字体方法
NSString* string = @"60秒";     NSMutableAttributedString * attStr = [[NSMutableAttributedString alloc] initWithString:string];     NSRange range = NSMakeRange (0, 2);     [attStr setAttrib
车牌字符样本(数字和字母)
数字和字母样本,各50张,挺好的
分出字符中的数字与字母
有一例数据rnrn CHU345rn AB345rn DDUUX908rn CHX87rnrn要求选出其中的字母与数字rn CHU 345rn AB 345rn DDUUX 908rn CHX 87
字符图像识别——数字字母混合
需要识别的验证码图像,其中包含 4 个字符(数字字母) 验证码图片来源:http://my.cnki.net/elibregist... 思路 灰度化:将图像转为灰度图像,即一个像素只有一种色阶(有 256 种不同灰度),值为 0 表示像素最黑,值为 255 表示像素最白。 二值化:将图像转为黑白图像,即一个像素只有黑白两种状态,不是...
如何从字符串中提取字母和数字
比如string a="xzhke873PQJ0-d_D)us/@fjda'543214321#%^&*#";rn怎么才能使a="xzhke873PQJ0dDusfjda543214321";
今天开始学Java 接受一个有字母和数字以及空格组成的字符串,和一个字符
题目描述写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。输入描述:输入一个有字母和数字以及空格组成的字符串,和一个字符。输出描述:输出输入字符串中含有该字符的个数。示例1输入ABCDEF A输出1import java.util.Scanner;public class Main{    public static int f...
数字字符串转化成数字
怎么把数字字符串转化成数字rn比如 "30004e2d67253a4277"转成内存中的十六进制是0x30 0x00 0x4e 0x2d 0x67等形式?
字符串数字转数字
字符串数字转数字 parseInt parsefloat let a = ‘123’ parseInst(a) // 123 Number let b = ‘12.58463’ parseFloat(b) // 12.58463 Number typeof +a // Number typrof -a // Number
数字字符串和数字互转
#include #include #include #include using namespace std; int main() { int s; //数字转字符串 vector v = { 1, 2, 3 }; stringstream ss; for (int i = 0; i { ss } string sss; sss = ss.str(); /
数字字符串 格式化 数字
各位大侠 ,请教个问题 。rn如何 把 一个 数字字符串 变成 纯粹的数字啊rn比如说 char temp[80] = "123456789";rn我想把 其中的数字提出来 变成数字123456789。而不是字符.rn谢谢~~~~~~
从含有数字的字符串中提取数字
var v ="测试数据101test250"; 我想要里面的 101250 var strHtml = '测试数据101test250' var num=""; for(var i=0;i&lt;strHtml.length;i++){ if("0123456789".indexOf(strHtml.substr(i,1))&gt;-1) ...
如何提取字符串数字和字母
QString str = "9004-Ⅱ刀闸";将9004-Ⅱrn提取出来rnQString str2 = "902c手车刀闸";将902c提取出来rn即把除汉字外的字符串提取出来,正则表达式怎么写?或者还有什么其他方式
数字字符串解码为字母
题目:将一串数字字符串,解码为一串字母。比如1234,可以为abcd,也可以为lcd,awd,abcd。 思想:采用递归的方式,每两个为一组进行遍历,一组又可以拆分为两个待解字符或者结合为一个待解字符。#include #include #include #include char letter[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', '
字符串中分离数字和字母
字符串中分离数字和字母 rnString str = “中国abc123”;rn怎么分离出来?
含有数字和字母的字符串排序算法
求解 含有数字和字母的字符串排序算法
混合字母和数字的字符串字母排序
要将一组数据导入到Excel中,一个键对应一个值,键和值的内容都要导入到Excel中,但是利用SortedDictionary排序后得出的键排序后的结果你不是想要的。应该是先按字母排序,再按数字排序,但是SortedDictionary自动排序得出的结果中按数字排序得出的结果不是想要的,例如想要的是"A10","A11","A01",而SortedDictionary的排序结果却为"A10","A101","A11"。rnrn又如下面:rn数据有:"A01", "A02", "A22", "B02", "A23-1", "A23", "A222", "A101", "A10-1", "A11"rn想要的排序结果是:"A01", "A02", "A10-1", "A11", "A22", "A23", "A23-1", "A101", "A222", "B02"rn而现在的结果是:"A01", "A02", "A10-1", "A101", "A11", "A22", "A222", "A23", "A23-1", "B02"rnrn这该怎么办?
c语言中怎样从字母和数字组成的字符串中提取数字?
问题如题,比如a123b11c22,在遇到字母时就把它后面的数字提取出来,并且使后面的数字(如a后面的123)可以和其他int数据比较大小,多谢指点!!
随机生成数字字母字符串
根据要求生成数字字母的字符串,并拍去了重复生产的可能,可以用于验证码
字符串,字母和数字之间的加减法
1 console.log(1+ &quot;2&quot;+&quot;2&quot;); 做加法时要注意双引号,当使用双引号时,JavaScript认为是字符串,字符串相加等于字符串合并。 因此,这里相当于字符串的合并,即为122. 2. 1 console.log(1+ +&quot;2&quot;+&quot;2&quot;); 第一个+&quot;2&quot;中的加号是一元加操作符,+&quot;2&quot;
字符串只保留数字和字母
字符串只保留数字和字母 求大神指导。。
从包含数字和字母的字符串中,取出所有数字并组成一个数(Python)
举例:如果输入“hdj1212fkfdafkjddjhf3434”,应该返回:12123434
生成固定长度数字的字符串
/** * 生成固定长度序列字符串 * @param length 字符串长度 * @param preNo 上一个数 * @return */ public static String genSequenceNumber(int length,int preNo){ return String.format(...
Java产生随机数字、随机字母、随机数字+字母
package com.demo.common; import java.util.Random; /** * @version: * @function: 产生随机数字、随机字母、随机数字+字母。 */ public class RandomUtil { /** * 随机产生几位...
Java随机产生数字字母字符串
想函数传入一个整数n,代表想要得到得到字符串的长度public class RandomCode { public static String getRandomCode(int n) { String a = &quot;0123456789qwertyuiopasdfghjklzxcvbnmABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;; cha...
java随机生成字母加数字的字符串
第三方jar包 compile 'commons-lang:commons-lang:2.5' 随机生成6位字母加数字的字符串 RandomStringUtils.randomAlphanumeric(6).toLowerCase();
字符型数字转数字
string csNum = "13858095875";rn转成rnDWORD dwNum = 13858095875;rnrn要求:效率越高越好
Java 字符/数字 雨
自己写的一个java字符雨,感觉还可以,按esc键退出。 下载链接:Java字符雨,(代码有注释,欢迎评论)
java中的字符和数字
String str = &quot;3832154813577306424&quot;; Long lo = 3832154813577306424l; System.out.println(&quot;string length == &quot; + str.length()); byte[] bytes = ByteUtils.longToBytes(lo); System.out.println(&quot;long l...
字符串和数字结合,提取数字,操作数字
最近写了一个算法,是字符串包含数字,需要数字结尾的,要数字递加,废话不多,上代码 /**      * 名称与数字调度算法      * @param name      * @return      */     private String pointNameScheduling(String name) {         boolean b = Pattern.matches(&quot;\\d+...
相关热词 c# 去空格去转义符 c#用户登录窗体代码 c# 流 c# linux 可视化 c# mvc 返回图片 c# 像素空间 c# 日期 最后一天 c#字典序排序 c# 截屏取色 c#中的哪些属于托管机制

相似问题

3
Delphi2010 Tstringlist保存的字符串,字母和数字显示出来为乱码
99
只要回答,都给C币,请问怎么实现javascript对字符串和数字相互转换?
16
java,现在有一个字符串数组希望转成long数组,有什么好方法?
9
java中字符串问题!!
7
【Java】怎么比较两个字符串中的数字大小?
9
如何使用正则表达式提取特定字符串后面的数字
1
java程序设计(字符串排序)
4
一串数字是如何加密/混淆 得到如下密文的?
2
java如何自动按序生成字母字符串
2
java字符串分割,为什么会分割出来一个字符串长度为0的串
3
C#如何把带小数点的字符串转化为字节数组,并且把每一位分割为单字节发送?
0
如何将字符串中所有单词摘出来到一个新的二维数组中
2
求一个密码正则,可以包含字母数字和常用特殊字符,但不能是纯字母纯数字
1
Android中XmlPullParser解析XML中的数字字符串时得到Infinity如何解决?
6
java从字符串中得到数字
1
怎样用JAVA编写一个控制台程序,实现学生注册功能,要求有数组、字符串、循环、包装类、数字处理类?
2
java替换字符串中包含的5位长度的数字,其他长度不用处理,请问有什么好的办法?
3
怎么在javascrpt里从字符串里取一个最大的数字,字符串具体如下
1
javascrpt语言里读取一个字符串,然后再分割成单个的字符,放在不同的表单
1
C语言计算实现,字符串的编码值小于等于给定的值则输出yes,否则输出no