java - 替换字符串上的空格并使用 toCharArray() 打破它们似乎不起作用
问题描述
我尝试做一些字符串操作来使用可用的方法,我注意到当我使用该replaceAll("\\s+","")
方法删除字符串中的空格时,它没有做到这一点。
System.out.print("Enter a word: ");
String word = scanner.next();
String cleansed = word.replaceAll("\\s+","");
char[] letters = cleansed.toCharArray();
for(char c : letters){
System.out.print(c+" ");
}
当我去控制台做类似的事情时,
Enter a word : I am entering some word.
我在控制台上得到的输出I
似乎String
在空格之后删除了所有其他值。
我在这里想念什么?
当无事可做时,我会尝试不同的方法。所以现在我只是想知道为什么它没有按预期工作。
我会很感激任何帮助。
谢谢你。
解决方案
您应该使用scanner.nextLine()
而不是scanner.next()
. 也使用word.replaceAll()
代替word.replace()
这是工作代码:
import java.util.Scanner;
public class Example {
public static void main(String[] a) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scanner.nextLine();
String cleansed = word.replace("\\s+","");
char[] letters = cleansed.toCharArray();
for(char c : letters){
System.out.print(c+" ");
}
}
}
输出将是:
Enter a word: Enter a word : I am entering some word.
E n t e r a w o r d : I a m e n t e r i n g s o m e w o r d .
推荐阅读
- google-sheets - 谷歌表格时间跟踪公式
- html - 无法围绕边距传播
- node.js - 使用 CloudFlare Workers 部署 AMP 服务器端渲染
- jax-ws - 无法为连接 URL 'null' Tomcat 9、Oracle 12c、JDK 8 创建类 '' 的 JDBC 驱动程序,
- python - 在烧瓶中创建超级用户的最佳方法是什么
- azure-function-app - 更新到 Microsoft.Net.Functions 3.0.3 后如何正确设置 Azure 队列触发器?
- vue.js - 在 Vue 中编辑数组的最佳方法。v模型问题
- javascript - React,如何更改下拉菜单选项?查询?
- selenium-webdriver - 实现池队列硒网格
- azure-iot-edge - TPM 证明 - 序列图?