scanner输入多个字符中剔除不需要的字符
时间: 2024-03-23 09:41:51 浏览: 18
可以使用Scanner类的next()方法读取一个字符串,然后使用String类的replaceAll()方法替换掉不需要的字符。比如,以下代码可以将输入的字符串中的所有非字母和数字字符替换为空格:
```
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
input = input.replaceAll("[^a-zA-Z0-9]", " ");
```
其中,[^a-zA-Z0-9]表示除了字母和数字以外的字符," "表示替换成空格。
相关问题
scanner输入多个字符中返回不需要的字符
如果想要返回不需要的字符,可以使用正则表达式将需要的字符替换为空字符串,剩下的就是不需要的字符了。可以使用Scanner类的next()方法读取一个字符串,然后使用String类的replaceAll()方法将需要的字符替换为空字符串,最后返回剩下的字符。比如,以下代码可以返回输入的字符串中的所有非字母和数字字符:
```
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
String unwantedChars = input.replaceAll("[a-zA-Z0-9]", "");
```
其中,[a-zA-Z0-9]表示字母和数字,""表示替换成空字符串。unwantedChars即为不需要的字符。
scanner输入多个字符串
可以使用循环来输入多个字符串,每次输入一个字符串,然后将其存储到一个数组中。具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
char *strings[MAX_LEN];
int i = ;
printf("请输入多个字符串,以空格或回车分隔:\n");
while (scanf("%s", str) != EOF) {
strings[i] = (char *) malloc(strlen(str) + 1);
strcpy(strings[i], str);
i++;
}
printf("输入的字符串为:\n");
for (int j = ; j < i; j++) {
printf("%s\n", strings[j]);
free(strings[j]);
}
return ;
}
```
这段代码使用了一个字符串数组来存储输入的多个字符串,每次输入一个字符串后,将其存储到数组中,并将数组下标加1。最后,遍历数组并输出每个字符串。注意,为了避免内存泄漏,需要在程序结束前释放每个字符串的内存空间。