char str = “10 20.5 hello”; 如何从 str得到token[0]=10,token[1]=20.5,token[2]=hello,
时间: 2024-10-14 13:13:40 浏览: 16
基于C语言的u2f-token设计源码与跨平台实现
要从字符串`str = "10 20.5 hello"`中提取这样的tokens(即数字、浮点数和单词),你可以使用String的split()函数配合正则表达式。这里是一个步骤说明:
1. 创建一个正则表达式模式,匹配整数、小数和空格:`\d+|\.\d+|[\s]`。这个模式会匹配一个或多个数字(`\d+`)、一个小数点后跟零个或多个数字(`\.\d+`),以及一个空白字符(`[\s]`)。
2. 使用split()函数将字符串按照该模式分割成数组。例如:
```java
Pattern pattern = Pattern.compile("\\d+|\\.\\d+|\\s");
String[] tokens = str.split(pattern);
```
3. 分割后的数组`tokens`中,第一个元素将是"10",第二个元素将是"20.5",第三个元素将是" "(一个空格),第四个元素将是"hello"。如果需要去掉最后一个空格,可以简单地使用`Arrays.copyOfRange(tokens, 0, tokens.length - 1)`。
现在,`tokens`数组就是你想要的结果了。如果你只需要非空token,可以在循环中过滤掉空字符串:
```java
List<String> nonEmptyTokens = Arrays.stream(tokens)
.filter(token -> !token.isEmpty())
.collect(Collectors.toList());
```
阅读全文