String str = "Card 0,Card 1"; String[] cards = str.split(","); for (String card : cards) { String[] parts = card.split("\\s+"); for (String part : parts) { if (part.matches("\\d+")) { System.out.println(part); } } } 用最简单的代码
时间: 2024-03-15 21:46:26 浏览: 17
您可以将上述代码简化如下:
```
String str = "Card 0,Card 1";
String[] parts = str.replaceAll("\\D+", " ").trim().split(" ");
for (String part : parts) {
if (!part.isEmpty()) {
System.out.println(part);
}
}
```
输出结果与之前相同:
```
0
1
```
在上述代码中,我们首先使用 replaceAll() 方法将非数字字符替换为空格,然后使用 trim() 方法去除字符串两端的空格,最后使用 split() 方法将字符串分割成字符串数组。对于每个字符串数组元素,我们使用 isEmpty() 方法判断其是否为空字符串,然后直接输出。需要注意的是,正则表达式中的双反斜杠是用来转义反斜杠的。
相关问题
std::string <==> ::std::string
`std::string`和`::std::string`是完全相同的,它们都是C++标准库中的字符串类。`std`是C++标准库的命名空间,因此`std::string`表示在`std`命名空间中定义的字符串类。而`::std::string`中的`::`表示全局命名空间,因此它也表示相同的字符串类。两者可以互换使用,没有任何区别。
示例代码:
```c++
#include <iostream>
#include <string>
int main() {
std::string str1 = "hello";
::std::string str2 = "world";
std::string str3 = str1 + ", " + str2;
std::cout << str3 << std::endl; // 输出:hello, world
return 0;
}
```
std::string s = std::to_string(str.size());
std::string s = std::to_string(str.size());这行代码将字符串str的长度转换为std::string类型的s。根据给出的代码片段,str是一个std::string类型的对象。std::string的size()函数返回字符串的长度,而std::to_string()函数将整数转换为std::string类型。因此,该行代码将字符串str的长度转换为std::string类型的s。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++17新特性之std::string_view](https://blog.csdn.net/renhui1112/article/details/124074829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]