我有一个情况,我需要连接几个string形成一个类的ID。 基本上我只是在列表中循环获取对象的ToString值,然后连接它们。 foreach (MyObject o in myList) result += o.ToString(); 这份名单预计不会超过5个元素(虽然它可能只是一个非常非常小的情况),通常会有1到3个元素,通常只有一个或两个元素。 什么是更好的性能,保持串联或使用StringBuilder? StringBuilder bld = new StringBuilder() foreach (MyObject o in myList) bld.Append(o.ToString()); 我不确定在最常见的情况下,创buildStringBuilder比标准连接需要更多的时间。 这是懒惰的,列表中的项目一旦创build就不会改变,所以当被调用的时候,id是懒惰地构造的。 作为一个侧面说明…我应该使用固定的数组,而不是一个列表? 如果我这样做,我会得到任何performance或记忆改善吗? (无论如何,List只能用作IEnumerable) 对这个问题更普遍的看法可能是,有多less个string足以停止连接并开始构build? 我应该甚至打扰testing案例的情况? if (myList.Count > 4) ConcatWithStringBuilder(myList);
我知道这可能是简单的,但是我怀疑C ++会是。 如何将01/01/2008格式的string转换为date以便操作? 我很高兴把这个string分解成为一年中每月的成分。 如果解决scheme只是Windows,也很高兴。
我在eclipse上开发一个android应用程序,当我尝试一些代码 switch(String){ …… } 它给我以下错误 Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted 所以我把编译器改为1.7,然后给我另一个错误 Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties. 那么,有没有让开关(String)在Android应用程序中工作? 否则我不得不使用 if(){} else if(){} else if(){} ……..
什么是从C中的string中删除空格的最简单和最有效的方法?
如何删除最后一个字符只有当它是一个时期? $string = "something here."; $output = 'something here';
在VB.NET中,使用&连接串而不是+有什么好处? 例如 Dim x as String = "hello" + " there" 与 Dim x as String = "hello" & " there" 是的,我知道很多string连接,我想使用StringBuilder ,但这是一个更普遍的问题。
我希望代码将所有string中的字符转换为Java中的大写或小写。 我发现了一个像这样的方法: public static String changelowertoupper() { String str = "CyBeRdRaGoN"; str=str.toLowerCase(Locale.ENGLISH); return str; } 现在我已经读过使用某些Locale ,比如土耳其语,“返回我(没有点),而不是我(点) 。 使用英语,美国,英语等Locale是否安全? 在应用于string时,它们之间有什么大的区别吗? 哪个是最喜欢的String的Locale ?
我有一些简单的代码: def find(str, ch): for ltr in str: if ltr == ch: return str.index(ltr) find("ooottat", "o") 该函数只返回第一个索引。 如果我改变返回打印,它会打印0 0 0.为什么这是有什么办法得到0 1 2 ?
在这个答案中 ,它表示(意味着)string连接已经优化到StringBuilder操作中,所以当我编写代码时,是否有任何理由在源代码中编写StringBuilder代码? 请注意,我的用例与OP的问题不同,因为我连接/追加了成千上万行。 为了使自己更清楚:我很清楚每个的差异,只是我不知道是否值得实际编写StringBuilder代码,因为它的可读性较差,当它的慢表弟,string类,自动转换无论如何编译过程。
我想保存一个Swift样式string数组到NSUserDefaults,但在代码中的“if”语句实际上说returnValue始终为零。 在后面的代码中,我想用“food + = [”意大利面条“]添加新条目。 var food : [String] { get { var returnValue : [String]? = NSUserDefaults.standardUserDefaults().objectForKey("food") as? [String] if returnValue == nil //Check for first run of app { returnValue = ["muesli", "banana"]; //Default value } return returnValue! } set (newValue) { NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "food") NSUserDefaults.standardUserDefaults().synchronize() } }