gpt4 book ai didi

java - 从用户 Java 输入中获取首字母

转载 作者:行者123 更新时间:2023-11-29 05:32:17 24 4
gpt4 key购买 nike

我有以下代码:

System.out.printf("Please enter your full name: ");
userFullName = KyBdIn.nextLine();

userFullName= userFullName.trim().replaceAll(" +", " ");
userFullName = userFullName.replaceAll("(?<=\\w)\\w+", ".");
userFullName = userFullName.trim().replaceAll(" +", "");

System.out.println(userFullName);

我只是想知道它究竟是如何工作的?

是不是\w表示空白,并且 ?有疑问吗?

最佳答案

方法 replaceAll() 有两个参数;第一个是正则表达式(正则表达式)作为其搜索词,第二个是替换表达式(也可能包含某些正则表达式引用,但此处未使用)。

这一行:

userFullName = userFullName.trim().replaceAll(" +", " ");

电话 trim() ,删除前导和尾随的“空白”字符,然后调用 replaceAll()用一个空格替换“一个或多个空格”。

因为稍后会重复此行,所以执行两次不会增加任何值(value) - 可以删除任何一个都会影响最终结果。

这一行:

userFullName = userFullName.replaceAll("(?<=\\w)\\w+", ".");

用点替换一个或多个单词字符前面的单词字符。正则表达式的分解(没有 java 的反斜杠转义 - 即 "\\" 是一个带有单个反斜杠的字符串)是:

  • \w表示“单词字符”,可以是任何字母、数字或下划线字符
  • \w+表示“一个或多个单词字符”(加号表示一个或多个前面的表达式)
  • (?<=\w)是一个“向后看”,它断言前面的输入是一个“单词字符”

一起,正则表达式 (?<=\w)\w+有效地“除任何单词的第一个字符外的所有字符”

关于java - 从用户 Java 输入中获取首字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20706127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com