为了账号安全,请及时绑定邮箱和手机立即绑定

如何从数组对象中删除 £ 符号并保存它?

如何从数组对象中删除 £ 符号并保存它?

开心每一天1111 2022-08-03 10:11:58
我正在为一个大学项目编写一个基本的聊天机器人。我到了用户必须通过输入金额来设置预算的地步。目前,该程序能够在用户的消息中搜索数字并正确保存。但是,当 £ 符号作为前缀时,由于邮件中包含井号,因此无法保存为整数。这是我的代码://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()和其他指示它是我要删除的磅符号的方法,但我仍然得到“在这里找不到磅符号”打印出来。如果有人可以提供建议或纠正我的代码,我将不胜感激。
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

Strings在JAVA中是不可变的。您正在替换,但从未将结果重新分配给 。words[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


查看完整回答
反对 回复 2022-08-03
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

您也可以使用方法。String.replaceAll


代码片段:


public class TestClass {


    public static void main(String[] args){


        //Code to remove non-digit number

        String budgetCount = "£34556734";

        String number=budgetCount.replaceAll("[\\D]", "");

        System.out.println(number);


        //Code to remove any specific characters

        String special = "$4351&2.";

        String result = special.replaceAll("[$+.^&]",""); // regex pattern

        System.out.println(result);


    }

}

输出:


34556734

43512


查看完整回答
反对 回复 2022-08-03
  • 2 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号