相关文章
更多最近更新
更多遍历字符串每个字符,Stringreader是不是要比string.toCharArray来的快?
2019-03-25 13:41|来源: 网路
我想遍历一个字符串的每一个字符,以前是用string.toCharArray()来转换成一个char[]一个一个看的
不过我看到有些,特别是lucene的分词器,他们都是用的stringreader来遍历一个字符串的
是不是stringreader要比string.toCharArray()换成的char[]要来的快?
不过我看到有些,特别是lucene的分词器,他们都是用的stringreader来遍历一个字符串的
是不是stringreader要比string.toCharArray()换成的char[]要来的快?
相关问答
更多-
这是一个更简单的方法来做到这一点: "012345".split('').join(',') 同样的事情,除了评论: "012345".split('') // Splits into chars, returning ["0", "1", "2", "3", "4", "5"] .join(',') // Joins each char with a comma, returning "0,1,2,3,4,5" 请注意,我将一个空字符串传递给split() 。 如果你不传递任何东西,你 ...
-
C#中字符串中单个字符迭代的最快方法是什么?(What is the fastest way to iterate through individual characters in a string in C#?)[2023-01-01]
最快的答案是使用C ++ / CLI: 如何:访问System :: String中的字符 该方法使用指针算术遍历字符串中的字符。 没有副本,没有隐式范围检查,没有每个元素的函数调用。 通过编写不安全的C#版本的PtrToStringChars ,很可能(C ++ / CLI几乎不需要固定)与C#相同的性能。 就像是: unsafe char* PtrToStringContent(string s, out GCHandle pin) { pin = GCHandle.Alloc(s, GCHan ... -
有很多方法,例如一个简单的解决方案是检查: lbl1.Text = IIf(hiddenarray.Lenght > 0, hiddenarray(0), "") lbl2.Text = IIf(hiddenarray.Lenght > 1, hiddenarray(1), "") 'etc 另一种方法是通过名称循环选择文本框: For i As Integer = 0 To hiddenarray.Lenght - 1 Me.Controls("lbl" & i + 1).Text = hidd ...
-
这些方法不执行编码,它们只是表示String实例内部状态的副本。 编码是将逻辑字形转换为数字表示(一系列字节)的过程。 将String想象为代表Unicode字形序列。 String类具有API来访问这些字形作为32位代码点,或者作为一系列使用UTF-16-BE(恰好是字符串的本地内部表示形式)编码的16位值,或者作为一系列所选编码中的字节。 您只需在最后一种情况下指定编码。 一些编码,如UTF-8,支持所有的Unicode字符,而许多其他编码,如US-ASCII,仅支持一小部分。 基于char[]的API ...
-
Character.getNumericValue()方法返回unicode数值而不是ASCII值。 例如,对于'e',ASCII为101,unicode为14。 ASCII相对简单: int ascii = (int) character; 在java中将字符转换为ASCII数值 getNumericValue的javadoc讨论了这一点,但对此事没有任何启示: https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#getN ...
-
你可以这样做: string InputData = "..."; if (InputData.Length == 1 && InputData[0] == 0x18) You could do it this way: string InputData = "..."; if (InputData.Length == 1 && InputData[0] == 0x18)
-
toCharArray更好。 这样你就不必处理编码。 至少不是在正常情况下(Unicode BMP以外的字符除外,它们被编码为两个代理字符)。 基本上,如果你不必处理中文文本,这不是问题。 从String到char数组的转换比toBytes()快:它基本上是一个数组副本,没有字符编码的麻烦。 在内部,一个String包含一个char[] ,并且(至少对于Java 7和更新版本),没有其他更多。 由char数组构造String比从byte数组返回更快,因为不需要字符编码。 toCharArray is bet ...
-
循环遍历字符串并为每个字符添加不同的值(Loop through a string and prefix each character with a different value)[2022-10-25]
如果将颜色存储在数组中会更容易。 将颜色数量存储在变量中,以免在循环中继续执行colors.length 。 String [] colors = {"4", "6", "e", "a", "b", "9", "5", "d"}; int numColors = colors.length; 创建一个StringBuilder: StringBuilder builder = new StringBuilder(); 循环访问字符数组。 向角色附加正确的颜色。 如果您的消息字符串大于8个字符, i%nu ... -
是的,那是因为你直接返回结果,所以它在你完成第一个字符串后返回。 相反,您应该将结果finalList您创建的finalList ,并在结尾处返回结果。 还有其他一些东西 - 如在另一个答案中所述,您想要检查字符串的长度。 字符串的长度应大于4,否则,最终会多次添加一些字符。 不要像变量list那样使用名称,它最终会影响内置函数,因此在此之后您将无法使用list()创建列表。 最后一个问题是你应该用你的列表调用函数,而不是string 。 示例 - def both_ends(list): fina ...
-
鉴于您编写的代码,这里是我看到它做的一个例子: //going to set filesGroupList[x] to a string and then see what happens. filesGroupList[x] = "First line of string.\nSecond line of string.\n"; //now we go into the using portion. using (StringReader reader = new StringReader(filesGr ...