首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用indexof和substring从字符串中提取数字并生成数字的List<int>?

使用indexof和substring从字符串中提取数字并生成数字的List<int>,可以按照以下步骤进行:

  1. 首先,定义一个空的List<int>,用于存储提取出的数字。
  2. 使用indexof方法找到字符串中第一个数字的索引位置。可以通过循环遍历字符串的每个字符,直到找到第一个数字的位置。
  3. 一旦找到第一个数字的索引位置,可以使用substring方法从该位置开始提取数字。可以通过循环遍历字符串的每个字符,直到遇到非数字字符为止,将提取到的数字字符串存储起来。
  4. 将提取到的数字字符串转换为整数,并将其添加到List<int>中。
  5. 继续循环遍历字符串,重复步骤2到步骤4,直到字符串中的所有数字都被提取并添加到List<int>中。
  6. 最后,返回生成的List<int>。

以下是一个示例代码,使用C#语言实现上述步骤:

代码语言:txt
复制
string inputString = "abc123def456ghi789";
List<int> numbersList = new List<int>();

int startIndex = 0;
while (startIndex < inputString.Length)
{
    int digitIndex = inputString.IndexOfAny("0123456789".ToCharArray(), startIndex);
    if (digitIndex == -1)
    {
        break;
    }

    int endIndex = digitIndex;
    while (endIndex < inputString.Length && Char.IsDigit(inputString[endIndex]))
    {
        endIndex++;
    }

    string numberString = inputString.Substring(digitIndex, endIndex - digitIndex);
    int number;
    if (int.TryParse(numberString, out number))
    {
        numbersList.Add(number);
    }

    startIndex = endIndex;
}

// 输出提取到的数字列表
foreach (int number in numbersList)
{
    Console.WriteLine(number);
}

这段代码将从字符串"abc123def456ghi789"中提取出数字123、456和789,并将它们存储在List<int>中。你可以根据实际需求修改输入字符串和输出方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# 字符串操作指南:长度、连接、插值、特殊字符实用方法

; 字符串长度 在 C# 字符串实际上是一个对象,其中包含可以在字符串上执行某些操作属性方法。...C# 使用 + 运算符同时进行加法连接。 记住:数字相加,字符串连接。...如果您将两个数字相加,结果将是一个数字: 示例: int x = 10; int y = 20; int z = x + y; // z 将是 30(整数/数字) 如果您将两个字符串相加,结果将是字符串连接...(),它从字符串提取字符,指定字符位置/索引开始,返回一个新字符串。...此方法通常与 IndexOf() 一起使用以获取特定字符位置: 示例: // 全名 string name = "John Doe"; // 字母D位置 int charPos = name.IndexOf

42010

Oracle Java NumbersStrings

使用类方法将值转换为其他基元类型其他基元转换为字符串,以及在数字系统(十进制、八进制、十六进制、二进制)之间转换。 下表列出了“Number”类所有子类实现实例方法。...每个“Number”类包含其他方法,这些方法可用于将数字转换为字符串字符串转换为字符串,以及在数字系统之间进行转换。下表列出了“Integer”类这些方法。...使用Math。当你需要生成一个随机数时,“随机”很有效。如果需要生成一系列随机数,应该创建java.util。Random”调用该对象上方法以生成数字。...子字符串指定“beginIndex”开始,扩展到索引“endIndex-1”处字符。 String substring(int beginIndex) 返回作为此字符串字符串字符串。...然后,“substring使用“lastIndexOf”返回值提取文件扩展名,即从句点到字符串结尾字符串

18000

Java八大常用类(三) String类(重要,重点掌握)

数字0开始) System.out.println(a.indexOf("i")); //查找字符串i,第一次出现时候,数组索引数值,根据指定字符串查询指定下标,找不到返回-1...System.out.println(a.indexOf("j",2)); //指定位置查询字符下标.数组下标为(2)开始,顺序找,找到j字符下标 System.out.println.../数组下标为(2)到数组下标(6)截取字符串,找到j字符下标 System.out.println(a.substring(2)); //数组下标为(2)开始截取字符串,一直到结束...String str6 = " b j n u "; System.out.println("------->"+str6.trim()+"<--------"); //去除字符串开始结束空格...位置 int b1 = str.indexOf("."); //获得最后一个 .

35720

JavaScript 28个常用字符串方法及使用技巧

() substring() 方法用于提取字符串中介于两个指定下标之间字符。...其语法如下: string.substring(from, to) 复制代码 该方法有两个参数: from:必需。一个非负整数,规定要提取子串第一个字符在 string 位置。 to:可选。...该方法类似 indexOf() lastIndexOf(),但是它返回指定值,而不是字符串位置。...字符串转为数字 parseInt()parseFloat()方法都用于将字符串转为数字。 (1)parseInt() parseInt() 方法用于可解析一个字符串返回一个整数。...该方法指定字符串首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字末端为止,然后以数字返回该数字,而不是作为字符串

1K00

Java也能做爬虫???

: 1) 确定一个(多个)种子网页 2) 进行数据内容提取 3) 将网页关联网页连接提取出来 4) 将尚未爬取关联网页内容放到一个队列 5) 队列取出一个待爬取页面,判断之前是否爬过。...1、先使用URL类,来将当当网下搜索机械表内容提取出来。...如果想根据条件提取网页内容信息,那么就需要使用Java正则表达式。...\\w+)通过PatternMatcher配合,我们可以把一段内容匹配我们要求文字提取出来,方便我们来处理。 例如:将一段内容电话号码提取出来。...,借助容器list,Set,Map来对链接进行爬取未爬取得划分; 5、每次爬取一个网页时,所获得所有链接在当前基础上深度+1,并且从未爬取队列移除,加入到已爬取队列; 6、为提升性能,在进行递归时候

97020

枚举类

Random(); //创建一个Random对象 for(int i=0;i<20;i++){//随机生成20个随机整数,显示         int num=rand.nextInt(10);/...equals():检查组成字符串内容字符是否完全一致 ==:判断两个字符串在内存地址, 即判断是否是同一个字符串对象 equalsIgnoreCase()比较字母长度字符是否相同,切不区分大小写...toLowerCase()转小写 toUpperCase()转大写 字符串连接 方法1:使用“+” 方法2:使用String类concat()方法 方法名 说明 public int indexOf...(int ch) 搜索第一个出现字符ch(或字符串value),如果没有找到,返回-1 public int indexOf(String value) public int lastIndexOf...(int index) 提取位置索引开始字符串部分 public String substring(int beginindex, int endindex) 提取beginindexendindex

24510

Java基础专题(三):字符串

子串 String类substring方法可以从一个较大字符串提取出一个子串。...这里要复制位置为0,12(0到2,包括02)字符。在substring0开始计数,直到3为止,但不包括3。 substring有一个优点:容易计算字串长度。...即substring(a,b)长度为b-a。例如,子串“Hel”长度为3-0=3 拼接 与绝大多数程序设计语言一样,Java语言允许使用 + 号连接(拼接)两个字符串。...所以在Java文档中将String类对象称为不可变字符串,如同数字3永远是数字3一样,字符串“Hello”永远包含字符 H,e,l,l o 代码单元序列,而不能修改戏中任何一个字符。...cp) int indexOf(int cp, int fromIndex) 返回与字符串str或代码点cp匹配第一个子串开始位置。

60440

Leetcode算法系列| 10. 正则表达式匹配

1.题目 给你一个字符串 s 一个字符规律 p,请你来实现一个支持 ‘.’ ‘*’ 正则表达式匹配。 1.‘.’ 匹配任意单个字符 2.‘.’...提示: 1 <= s.length <= 20 1 <= p.length <= 20 s 只包含 a-z 小写字母。 p 只包含 a-z 小写字母,以及字符 . *。...保证每次出现字符 * 时,前面都匹配到有效字符 2.题解 映入脑海第一个想法是将数字转换为字符串检查字符串是否为回文。但是,这需要额外非常量空间来创建问题描述中所不允许字符串。...按照第二个想法,为了避免数字反转可能导致溢出问题,为什么不考虑只反转 int\text{int}int 数字一半?毕竟,如果该数字是回文,其后半部分反转后应该与原始数字前半部分相同。... M2 = new List() { }; int pStarIndex = p.IndexOf("*"); foreach

10610

JavaScript初探 二 (了解数据)

I am is Student" ; var len = txt.length ; // 输出txt长度:len=15 查找字符串字符 indexof(char):返回字符串中指定字符首次出现位置索引...,会返回 -1 检查字符串字符串 search(char) :搜索特定值字符串返回匹配位置 字符串变量.search(char); var str = "I want world...(start , length); slice()方法 slice() 提取字符串某个开始部分并在新字符串返回被提取部分。...数值精度 小数最大是精确到—17位(浮点数算法是不100%精确数字字符串相加 警告!!!...JavaScript加法级联都使用 + 运算符; 数字用加法+ ,字符串用 级联; 数字字符串 JavaScript 字符串可以拥有数字内容 var x = 100 ; // x是数字 var y

92910

脚撕LeetCode(937)Easy

字与字之间都用 单个 空格分隔 题目数据保证 logs[i] 都有一个标识符,并且在标识符之后至少存在一个 题目意思:给你一个字符串数组,重新排序,字符串第一个空格之前为标识位,后面的为内容...让你将内容纯数字放在最后(纯数字字符串之间保持原来顺序),纯字母按照内容排序,如果内容一致就按照标识符排序。字符串中一定会有标识符内容。...一、爆破法 爆破法很简单,将纯数字内容放进一个list里面排序。纯字母内容放入map,key为内容,value为Set,Set内容为整个字符串。...int x=0,y=0;//x,y代表两个String第一个有效数据所在index。...想来也是,如果想内存占用低时间快,还是尽可能考虑能不能尽量用数组比较好。 后续应该加强一下排序算法这块内容。加上之前图。

22110

Java字符串之性能优化

不幸是,这是最糟糕实现方法了。要想知道为什么,我们得先介绍下这个字符串拼接在Java里是如何处理。...当然了,你第一反应是,得将这个分隔符存到一个String对象,然后使用String.indexOf方法来进行拆分。...它内部其实是分配了一个char[],长度就是拼接后字符串长度,它将字符串数据拷贝到里面,最后使用了私有的构造方法来生成了一个新字符串,这个构造方法不会再对char[]进行拷贝,因此这个方法调用只创建了两个对象...在测试,我们把0到100000之间数全部进行了拼接,分别使用了String.concat, +操作符,还有StringBuilder,代码如下: String res = ""; for ( int...在Java 702Java 715之间版本,它是默认打开着(在Java 6_41还是默认关闭着),因此可能你得手动将它打开。

41620

基础类型转化成String

不幸是,这是最糟糕实现方法了。要想知道为什么,我们得先介绍下这个字符串拼接在Java里是如何处理。...当然了,你第一反应是,得将这个分隔符存到一个String对象,然后使用String.indexOf方法来进行拆分。...它内部其实是分配了一个char[],长度就是拼接后字符串长度,它将字符串数据拷贝到里面,最后使用了私有的构造方法来生成了一个新字符串,这个构造方法不会再对char[]进行拷贝,因此这个方法调用只创建了两个对象...在测试,我们把0到100000之间数全部进行了拼接,分别使用了String.concat, +操作符,还有StringBuilder,代码如下: String res = ""; for ( int...在Java 702Java 715之间版本,它是默认打开着(在Java 6_41还是默认关闭着),因此可能你得手动将它打开。

66820

Java字符串之性能优化

不幸是,这是最糟糕实现方法了。要想知道为什么,我们得先介绍下这个字符串拼接在Java里是如何处理。...当然了,你第一反应是,得将这个分隔符存到一个String对象,然后使用String.indexOf方法来进行拆分。...它内部其实是分配了一个char[],长度就是拼接后字符串长度,它将字符串数据拷贝到里面,最后使用了私有的构造方法来生成了一个新字符串,这个构造方法不会再对char[]进行拷贝,因此这个方法调用只创建了两个对象...在测试,我们把0到100000之间数全部进行了拼接,分别使用了String.concat, +操作符,还有StringBuilder,代码如下: String res = ""; for ( int...在Java 702Java 715之间版本,它是默认打开着(在Java 6_41还是默认关闭着),因此可能你得手动将它打开。

69520

JDK1.9-常用类String

Java程序中所有的字符串文字(例如"abc")都可以被看作是实现此类实例 String 包括用于检查各个字符串方法,比如用于比较字符串,搜索字符串提取字符串以及创建具有翻译为大写或小写所有字符字符串副本...public int indexOf (String str) 该字符串第一次出现索引位置 public String substring (int beginIndex) : 返回一个子字符串begin...Index开始截取字符串字符串结尾 public String substring (int beginIndex, int endIndex) : 返回一个子字符串beginIndex到endIndex.../ String substring(int start):start开始截取字符串字符串结尾 // System.out.println(s.substring(0));...substring(int start,int end):start到end截取字符串

28130

能否详细讲讲字符串呢?

如何理解它是由字符(char,含数字)构成?我们知道字符(char)是值类型,每一个字符值就是它本身字面上含义。这个在很多计算机语言中把它称之为字面量。...x2 = x.Substring(3); // x2结果等于def 3、函数:IndexOf() 用途:函数IndexOf(a),返回指定字符串在该实例第一次出现索引(位置值),索引...mystr.Remove( startIndex, count ) :当前字符串指定位置开始移除指定数量字符,返回一个新字符串。...mystr.Replace( oldValue, newValue ) :把当前字符串对象,所有指定字符串替换为另一个指定字符串返回新字符串。...mystr.Trim():移除当前字符串对象所有前导空白字符后置空白字符,返回一个前后都没有空白字符字符串。 一般来说,你可以不用死记硬背这些方法,但你必须知道:有这些方法!

39330

JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】

然后,我们调用slice()方法,传入索引参数14,这表示我们想要提取索引1(包括)到索引4(不包括)之间元素。...然后,我们使用indexOf()方法来查找数字3在数组位置,结果为2(索引0开始)。接着,我们使用indexOf()方法查找数字6在数组位置,由于数组没有数字6,所以返回-1。...substring(startIndex, endIndex)方法根据指定开始索引结束索引来提取字符串字符串。...,substring(6, 11)提取字符串str索引6开始到索引11之前字符串。...统计每个单词出现次数,生成一个包含单词频率对象。 使用正则表达式将字符串拆分为句子,计算句子数量。 查找包含特定单词句子。 将字符串拆分为字符数组,逆序排列字符。

14610
领券