当前位置: 首页 > 面试题库 >

为什么修剪不起作用?

燕实
2023-03-14
问题内容

我正在尝试从字符串中修剪前导空格,并且我不知道我的方法有什么问题,请提出任何建议?

码:

this.poNumber = poNumber.equals("") ? poNumber : poNumber.trim();

我正在从csv文件中读取poNumber为“ IG078565和IG083060”,并且输出也使用相同的空格获得相同的值,不确定为什么吗?

更新

添加完整的方法以获得更好的上下文:

public BillingDTO(String currency, String migrationId, String chargeId, String priceId, String poNumber, String otc,
            String billingClassId, String laborOnly) {
        super();
        this.currency = currency.equals("") ? currency : currency.trim();
        this.migrationId = migrationId.equals("") ? migrationId : migrationId.trim();
        this.chargeId = chargeId.equals("") ? chargeId : chargeId.trim();
        this.priceId = priceId.equals("") ? priceId : priceId.trim();
        this.poNumber = poNumber.equals("") ? poNumber : poNumber.trim();
            //poNumber.trim();
        //System.out.println("poNumber:"+this.poNumber.trim());
        //this.poNumber = poNumber.equals("") ? poNumber : poNumber.trim();
        this.otc = otc.equals("") ? otc : otc.trim();
        this.billingClassId = billingClassId.equals("") ? billingClassId : billingClassId.trim();
        this.laborOnly = laborOnly.equals("") ? "N" : laborOnly;
    }

谢谢。


问题答案:

更新 看来您的空格不是空格(ascii = 32)。您的代码为160,这是一个不间断的空格。trim()不处理。因此,您必须执行以下操作:

this.poNumber = poNumber.replace(String.valueOf((char) 160), " ").trim();

您最好创建一个实用程序- YourStringUtils.trim(string)然后执行两个操作- .trim()replace(..)

原始答案:

只需使用 this.poNumber = poNumber.trim();

如果有一个可能性poNumbernull,那么你可以使用空安全this.poNumber = StringUtils.trim(poNumber);的公共浪。

trimToEmpty(..)如果要null转换为空字符串,也可以从同一类使用。

如果您不想依赖commons-lang,则只需添加一个if子句:

if (poNumber != null) {
    this.poNumber = poNumber.trim();
}

如问题下的注释中所述-确保修剪后检查正确的变量。您应该检查实例变量。因为字符串是不可变的,所以您的参数(或本地变量,我不能说)不会改变。



 类似资料:
  • 问题内容: 我了解到删除前导和尾随空格。但是在我的情况下,它无法正常工作,我正在尝试使用以下代码,但是输出的前导和尾随空格。但是我的期望是文本没有开头和结尾的空格。这是我的代码。 请帮我 问题答案: 您需要将结果重新分配给: 请记住, Java中的字符串是不可变的 ,因此 几乎 所有的String类方法都将创建并返回新的字符串,而不是就地修改字符串。 尽管这是题外话,但是(正如我在那所说的),值得

  • 问题内容: 我正在尝试从JSON网址获取集合。骨干网确实发送了请求并得到了响应,但是在它之后的集合中没有: 这是我的JavaScript: 响应中的JSON 响应中的Content-Type HTTP标头为。 为什么不将其加载到集合中?JSON是否正确? 一些更多的代码: 问题答案: 是异步的。尝试 要么 要么

  • 问题内容: 我有三部分字符串,每个部分用 符号分隔 。例如, 现在,当我使用这样的方法拆分它时: 它包含整个字符串作为单个元素的数组。 但是当我使用这个: 它完美的作品是什么,我想这意味着 现在的数组包含,并分别对指数0,1和2。 我想知道为什么第一次使用时不起作用,因为我在使用 问题答案: 因为字符是在正则表达式中用来标记行尾的保留令牌。因此,您必须使用进行 转义。

  • 问题内容: 我现在有点困惑。我尝试过: 并得到: 但是,我想要: 我的代码有什么问题? 问题答案: 您没有将其分配给。字符串是 不可变的 。 您需要将其分配回。

  • 问题内容: 我正在尝试这样做: 第一行有效: 但是接下来的两个: 和 只是输出 为什么? 问题答案: 因为你需要加入同,只是列出了内容直接,内容不具有完整路径。 范例- 如果未提供完整路径,则在当前目录中搜索,因此当您给出时,将获得正确的列表。 范例- 假设某个文件夹-具有文件-并在其中。 当您执行-时,返回的列表类似于- 即使您在其中提供绝对路径,列表中返回的文件也将具有指向目录的相对路径。您将

  • 我想知道两次当地约会之间的时间。我使用了下面的代码: 我有以下错误: