只是好奇我要如何将字母或字符添加到预先存在的string
。将字符初始化后将字符添加到空字符串
这里是我想要做的,
我正在一个关键和密文,并减去它们的值(存储在ArrayList中)找到明文值(我得到一个int,然后使用它来查找数组列表中的字符串值),然后继续为两个字符串(密码和密钥)中的每个字母执行此操作。
这是可能的,还是我必须使用substring
或沿着这些路线的东西。
关于如何做到这一点或对我最初的问题的答案的任何建议,非常感谢!
感谢,
只是好奇我要如何将字母或字符添加到预先存在的string
。将字符初始化后将字符添加到空字符串
这里是我想要做的,
我正在一个关键和密文,并减去它们的值(存储在ArrayList中)找到明文值(我得到一个int,然后使用它来查找数组列表中的字符串值),然后继续为两个字符串(密码和密钥)中的每个字母执行此操作。
这是可能的,还是我必须使用substring
或沿着这些路线的东西。
关于如何做到这一点或对我最初的问题的答案的任何建议,非常感谢!
感谢,
你有没有考虑
添加字符String对象,因为String is immutable这将创造一个新的对象,每次(如果你正在创建的字符串是不是已经在String pool不推荐)
更新:
如果您正在寻找性能也(和任何变化有你的程序有很多的字符串比较),这里是我的建议:
使用strRef1 == strRef2
代替strRef1.equals(strRef2)
因为,String
是不可改变的, String
池的概念字符串的引用将始终等于所以如果
strRef1.equals(strRef2)
回报true
strRef1 == strRef2
应该总是返回true。
例外:如果您创建一个新的字符串明确像
strRef2 = new String();
完全忘了!感谢您的快速和亲切的提醒! :) –
@BhavikShah关于泳池,但我认为字符串池(使用'字符串#intern()')对初学者来说有点困难;-) –
@MenoHochschild:同意 –
由于字符串是最后的(设计为不可变的),你需要创建每次新的字符串。对于重复次数,我建议使用StringBuilder
,然后(所有字符添加后)通过toString()
-方法将其转换为字符串。
Gaah!我怎么没有想到这一点!感谢您的快速提醒!只要我被允许就接受答案! –
请注意,'StringBuilder#append()'比使用+运算符进行字符串连接更有效率。 –
我意识到这一点。虽然这听起来很尴尬,但我实际上是在当前正在编写的程序中使用StringBuilder ....也许是我的时间,我有一些睡眠哈哈 –
你可以尝试
string += newChar;
其中string
是初始String
对象和newChar
是这是行不通的字符串或字符你想追加到原始字符串。
注意:这不如使用StringBuilder.append(...)
有效。如果效率对你来说很重要,你最好用另一种方法。但是,这对于非常基本的用例就足够了。
因为字符串是不可改变的,使用StringBuilder这样你就不会创建一个新的String你希望你的字符串,包括了一封信
谢谢,我已经看到了这个从早期的答案,但谢谢你的反应不管! –
你不能改变一个实际的'String'对象每一次;但是你可以接受一个引用一个String对象的变量,并使它引用一个不同的对象。那是你需要的吗? –
我要快速编辑问题并为其添加更多详细信息。一会儿:P –
我还在想你如何使用'ArrayList'来存储关键值。无论如何,你可以使用'StringBuilder'。 – Helios