【问题标题】:.concat() is not working with String.valueOf [duplicate].concat() 不适用于 String.valueOf [重复]
【发布时间】:2020-10-10 22:31:29
【问题描述】:
/**
 * Gets the initials of the name .
 * 
 * @return the initials of the name.
 */public String initials() 
{
   String result = name.substring(0, 1);
   for (int i = 0; i < name.length() - 1; i++)
   {
        if(name.charAt(i) == ' ')
        {
           result.concat(String.valueOf(name.charAt(i + 1)));
        }
    }
  return result;
 }

下面的测试器在调用initials方法后只返回'J':

Name name = new Name("John Jacob Jingleheimer Schmidt");
System.out.println(name.initials());
System.out.println("Expected: JJJS");

我这样写代码的时候,后面的char转换成String后还是不能concat结果后,只返回名字的第一个字母。

【问题讨论】:

  • 请添加适当的标签以表明您使用的语言。另外,分享足够多的代码,以便其他人能够理解您面临的问题。
  • 你通常应该使用+来连接字符串,而不是concat(..)方法。

标签: java concat


【解决方案1】:

String 是一个不可变类,即String#concat 创建一个新的String,您需要将其分配回结果,如下所示:

result = result.concat(String.valueOf(name.charAt(i + 1)));

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 1970-01-01
    • 2013-10-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2020-03-30
    • 2021-09-25
    相关资源
    最近更新 更多