您现在的位置是:主页 > news > 新疆做网站首选/今天宣布疫情最新消息
新疆做网站首选/今天宣布疫情最新消息
admin2025/4/28 6:13:48【news】
简介新疆做网站首选,今天宣布疫情最新消息,政府门户网站集约化建设,网站建设工作自策划实施以来我正在为大学项目编写一个基本的聊天机器人.我认为用户必须通过输入金额来设置预算.目前,该程序可以在用户的消息中搜索号码并正确保存.但是,如果在其前面加上英镑符号,则由于消息中带有英镑符号,因此无法将其另存为整数.这是我的代码://Scan the user message …
我正在为大学项目编写一个基本的聊天机器人.我认为用户必须通过输入金额来设置预算.目前,该程序可以在用户的消息中搜索号码并正确保存.但是,如果在其前面加上英镑符号,则由于消息中带有英镑符号,因此无法将其另存为整数.
这是我的代码:
//Scan the user message for a budget amount and save it.
for (int budgetcount = 0; budgetcount < words.length; budgetcount++)
{
if (words[budgetcount].matches(".*\\d+.*"))
{
if (words[budgetcount].matches("\\u00A3."))
{
words[budgetcount].replace("\u00A3", "");
System.out.println("Tried to replace a pound sign");
ResponsesDAO.budget = Integer.parseInt(words[budgetcount]);
}
else
{
System.out.println("Can't find a pound sign here.");
}
}
我以前尝试过.contains()以及其他指示它是我要删除的英镑符号的方法,但仍然得到“在这里找不到英镑符号”的信息.打印.
如果有人可以提供建议或纠正我的代码,我将不胜感激.
提前致谢!
解决方法:
JAVA中的字符串是不可变的.您正在替换,但永远不要将结果分配回word [budgetcount].
更改代码中的以下行,
words[budgetcount] = words[budgetcount].replace("\u00A3", "");
这是通过使用Character.isDigit(…)识别数字并编织仅数字的字符串(可以稍后将其解析为整数)的另一种方法,
代码段:
private String removePoundSign(final String input) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
char ch = input.charAt(i);
if (Character.isDigit(ch)) {
builder.append(ch);
}
}
return builder.toString();
}
输入:
System.out.println(removePoundSign("£12345"));
输出:
12345
标签:java,regex
来源: https://codeday.me/bug/20191024/1922980.html