从字符串中提取出需要的内容

问题

输入一段字符串,从中提取1000-3999(包括1000,3999),输入并打印,以空格隔开
列如

输入:20201515abc2020 100 4000 3999
输出:2020 3999

思路

1.定义一个截取字符串数组,遍历输入的字符串,如果字符属于0-9,用字符串拼接存入数组。
2.定义一个指定数组,存入1000-3999的字符串
3.比对两个字符串数组

代码

package test0917.demo1;

import java.util.Scanner;


/**
 * 从字符串中提取指定数字
 * @author : Bei-Zhen
 * @date : 2020-09-17 18:56
 */
public class Demo1 {

    private static int length = 0;

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        //输入一行字符串
        String s = sc.nextLine();

        String[] cutArray = new String[s.length()];
        //截取字符串放入指定数组
        for (int i = 0; i < s.length(); i++) {
            String temps = "";
            //数字0-9的ASCLL码为48-57
            while(s.charAt(i) >= 48 && s.charAt(i) <= 57){
                //字符串拼接数字
                temps += s.charAt(i);
                //防止数组越界
                if(i + 1 == s.length()){
                    break;
                }
                i++;
            }
            cutArray[length] = temps;
            length++;
        }

        String[] need = new String[3000];
        //指定数字放入数组
        for (int i = 0,j = 1000; i < 3000; i++,j++) {
            need[i] = j + "";
        }

        //比对两个字符串数组
        int num = 0;
        while(num < length) {
            for (int i = 0; i < need.length; i++) {
                if(cutArray[num].equals(need[i])){
                    System.out.print(cutArray[num] + " ");
                }
            }
            num++;
        }
    }
}

运行结果

154415255241gfsdgfds2020 1580 999 3999 4000
2020 1580 3999 
### 回答1: 可以使用正则表达式来从字符串提取指定的内容。例如,如果要从字符串提取所有的数字,可以使用以下代码: ```python import re string = "abc123def456ghi789" numbers = re.findall('\d+', string) print(numbers) ``` 输结果为: ``` ['123', '456', '789'] ``` 其,`\d+`表示匹配一个或多个数字。`re.findall()`函数会返回所有匹配的结果。 ### 回答2: Python作为一种广泛使用的编程语言,提供了很多方法和库来从字符串提取指定的内容。以下是一些常用的方法: 1. 切片(Slice):使用切片操作可以从字符串选择指定的部分。例如,可以使用以下代码从字符串提取第3到第6个字符: ``` string = "hello world" substring = string[2:6] print(substring) ``` 输结果为:`llo `。 2. split()函数:使用split()函数可以将字符串拆分成多个子字符串,并返回一个字符串列表。例如,可以使用以下代码从字符串提取以空格分隔的第3到第5个单词: ``` string = "hello world this is python" words = string.split() substring = " ".join(words[2:5]) print(substring) ``` 输结果为:`this is python`。 3. 正则表达式(Regular Expression):使用正则表达式可以在字符串搜索和提取指定的模式。Python提供了re模块来支持正则表达式。例如,可以使用以下代码从字符串提取所有数字: ``` import re string = "there are 3 apples and 5 bananas" numbers = re.findall("\d+", string) print(numbers) ``` 输结果为:`['3', '5']`。 4. 字符串方法(String Method):使用字符串方法可以对字符串执行各种操作,包括查找、替换、删除等。Python提供了丰富的字符串方法,如find()、replace()、strip()等。例如,可以使用以下代码从字符串提取包含首尾空格的子字符串: ``` string = " hello world " substring = string.strip() print(substring) ``` 输结果为:`hello world`。 总之,Python提供了多种从字符串提取指定内容的方法和技术,开发人员可以根据具体情况选择最合适方法。 ### 回答3: Python是一种易学易用的编程语言,因其强大的文本处理能力在数据处理和自然语言处理领域广受欢迎。从字符串提取指定内容是Python文本处理的常见需求,可以使用正则表达式、字符串截取等方法实现。 1. 正则表达式: 正则表达式是字符串匹配的利器,可以通过指定的模式从文本匹配所需的内容。Python内置了re模块,通过调用其函数实现字符串的正则匹配。例如: ```python import re str = 'Hello world 123' result = re.search(r'\d+', str) print(result.group(0)) # 输:123 ``` 以上代码使用re.search函数匹配字符串的数字,并使用group函数返回匹配到的结果。其,`\d+`表示匹配一个或多个数字。 2. 字符串截取: 通过指定字符串的起止位置,可以实现从字符串截取所需的内容。Python提供了灵活的字符串切片方式,使用`str[start:end]`的形式即可实现字符串截取。例如: ```python str = 'ABCDEFG' result = str[1:4] print(result) # 输:BCD ``` 以上代码使用`str[1:4]`方式截取字符串的第2个到第4个字符,返回了所需的内容需要注意的是,正则表达式和字符串截取均需要根据字符串的特点和匹配规则来实现,必要时可以通过组合使用不同的方式来实现更加复杂的文本处理需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bei-zhen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值