输入一串既有数字又有其它字符的字符串,提取数字,并从大到小排序
时间: 2024-05-02 21:18:55 浏览: 25
这是一个Python代码示例:
```python
import re
# 输入字符串
s = input("请输入字符串:")
# 提取数字
nums = re.findall(r'\d+', s)
# 将数字转为整数类型
nums = [int(num) for num in nums]
# 从大到小排序
nums.sort(reverse=True)
# 输出结果
print("提取出的数字并排序:", nums)
```
示例输出:
```
请输入字符串:abc123def456xyz789
提取出的数字并排序: [789, 456, 123]
```
相关问题
字符串既有数字又有字母,oracle如何排序
在 Oracle 中,对包含数字和字母的字符串进行排序时,默认是按照 ASCII 码的顺序进行排序的。这样的排序方式可能无法满足实际需求,因为数字和字母的排序顺序不同。
为了解决这个问题,可以使用 Oracle 提供的 NLSSORT 函数来进行排序。NLSSORT 函数可以将字符串按照指定的语言和排序规则进行排序。其中,语言对应的是 NLS_LANGUAGE 参数,排序规则对应的是 NLS_SORT 参数。
例如,如果要按照中文笔画顺序对字符串进行排序,可以使用以下 SQL 语句:
```
SELECT *
FROM table_name
ORDER BY NLSSORT(column_name, 'NLS_SORT=CHINESE_STROKE')
```
在上面的 SQL 语句中,NLSSORT 函数的第一个参数是要排序的列名,第二个参数是排序规则,其中 CHINESE_STROKE 表示按照中文笔画排序。
除了 CHINESE_STROKE,Oracle 还提供了其他一些排序规则,例如 FRENCH、GERMAN、JAPANESE_M、SPANISH 等,可以根据实际需求进行选择。
字符串转为数字并由大到小排序
以下是Python的示例代码:
```python
# 输入字符串
str_input = input("请输入由空格分隔的数字字符串:")
# 将字符串转为数字列表
num_list = [int(num) for num in str_input.split()]
# 对数字列表进行排序
num_list.sort(reverse=True)
# 输出排序后的结果
print(num_list)
```
示例输出:
```
请输入由空格分隔的数字字符串:10 5 8 3 9
[10, 9, 8, 5, 3]
```
代码解释:
- 第1行:提示用户输入由空格分隔的数字字符串,并将输入结果保存到变量 `str_input` 中。
- 第4行:使用列表推导式将字符串转为数字列表,其中 `str_input.split()` 表示按空格分隔字符串,返回一个由各个数字组成的列表,`int(num)` 表示将每个数字字符串转为整数。
- 第7行:使用列表的 `sort()` 方法对数字列表进行从大到小排序,`reverse=True` 表示降序排序。
- 第10行:输出排序后的数字列表。