Questions tagged «string»

字符串是有限的符号序列,通常用于文本,尽管有时用于任意数据。



4
Java中的Sprintf等效项
Printf在1.5版本中添加到Java中,但是我似乎找不到如何将输出发送到字符串而不是文件的方法(这是sprintf在C语言中的作用)。有谁知道如何做到这一点?
284 java  string  formatting 


11
数组转换为PHP?
将PHP数组转换为字符串的最佳方法是什么? 我有$type一个类型数组的变量。 $type = $_POST[type]; 我想将其作为单个字符串存储在数据库中,每个条目之间用分隔|: 体育|节日|其他
282 php  arrays  string 

18
空终止字符串的基本原理是什么?
尽管我热爱C和C ++,但我还是忍不住选择以null结尾的字符串: 在C之前存在长度前缀(即Pascal)的字符串 长度前缀的字符串允许进行恒定的时间长度查找,从而使几种算法更快。 前缀字符串的长度使导致缓冲区溢出错误更加困难。 即使在32位计算机上,如果允许字符串成为可用内存的大小,则带前缀前缀的字符串也只比以空终止的字符串宽3个字节。在16位计算机上,这是一个字节。在64位计算机上,4GB是一个合理的字符串长度限制,但是即使您希望将其扩展为机器字的大小,64位计算机通常也具有足够的内存,使得多余的7个字节属于null参数。我知道原始的C标准是为极差的机器(就内存而言)编写的,但是效率论点在这里并没有卖给我。 几乎所有其他语言(例如Perl,Pascal,Python,Java,C#等)都使用长度前缀的字符串。这些语言通常在字符串操作基准中胜过C,因为它们在使用字符串时效率更高。 C ++使用std::basic_string模板对此进行了一些纠正,但是期望以null终止的字符串的纯字符数组仍然很普遍。这也是不完美的,因为它需要堆分配。 空终止的字符串必须保留一个字符(即null),该字符不能存在于字符串中,而长度前缀的字符串可以包含嵌入的null。 这些事情中,有几件事比C揭露的要新,因此C不必了解它们是有道理的。但是,在C出现之前,有几个很简单。为什么会选择空终止的字符串而不是明显更好的长度前缀? 编辑:由于上面我的效率问题上有人问了一些事实(并且不喜欢我已经提供的事实),因此它们源于以下几点: 使用空终止字符串的Concat需要O(n + m)的时间复杂度。长度前缀通常只需要O(m)。 使用空终止字符串的长度要求O(n)时间复杂度。长度前缀为O(1)。 长度和concat是迄今为止最常见的字符串操作。在几种情况下,以null终止的字符串可能更有效,但这种情况发生的频率要少得多。 从以下答案中可以看出,在某些情况下以null终止的字符串更有效: 当您需要切断字符串的开头并将其传递给某种方法时。即使允许销毁原始字符串,也不能真正在恒定时间内使用长度前缀来完成此操作,因为长度前缀可能需要遵循对齐规则。 在某些情况下,您只是逐个字符地遍历字符串,则可以保存CPU寄存器。请注意,这仅在您没有动态分配字符串的情况下才有效(因为您必须释放它,必须使用保存的CPU寄存器保存最初从malloc和friends获得的指针)。 以上都不是最常见的长度和连贯性。 下面的答案中还有一个断言: 您需要切断字符串的结尾 但这是不正确的-空终止和长度为前缀的字符串的时间相同。(以NULL结尾的字符串只是在您希望新的结尾处保留一个NULL,长度前缀只是从前缀中减去。)
281 c++  c  string  null-terminated 




5
用另一个字符替换字符串中的某些字符
我有一个像AxxBCyyyDEFzzLMN这样的字符串,我想用_替换所有出现的x,y和z。 我该如何实现? 我知道这echo "$string" | tr 'x' '_' | tr 'y' '_'会行得通,但我想一口气做到这一点,而无需使用管道。
279 string  bash 

9
测试字符是否在字符串中
我正在尝试确定一个字符串是否是另一个字符串的子集。例如: chars <- "test" value <- "es" 如果“值”作为字符串“字符”的一部分出现,我想返回TRUE。在以下情况下,我想返回false: chars <- "test" value <- "et"
279 r  regex  string  r-faq 

7
如何获得PHP字符串的最后7个字符?
我将如何获取下面字符串的最后7个字符? 例如: $dynamicstring = "2490slkj409slk5409els"; $newstring = some_function($dynamicstring); echo "The new string is: " . $newstring; 将显示: The new string is: 5409els
278 php  string 

6
从Java字符串中去除前导和尾随空格
是否有一种方便的方法可以从Java字符串中剥离任何前导或尾随空格? 就像是: String myString = " keep this "; String stripppedString = myString.strip(); System.out.println("no spaces:" + strippedString); 结果: no spaces:keep this myString.replace(" ","") 将替换keep和this之间的空间。
278 java  string  replace 


9
使用$ str [0]获取字符串的第一个字符
我想获取字符串的第一个字母,并且我注意到它的$str[0]效果很好。我只是不确定这是否是“好的做法”,因为该符号通常用于数组。这个功能似乎没有得到很好的记录,因此我想请大家告诉我在所有方面都可以使用此符号吗? 还是我应该坚持好礼substr($str, 0, 1)? 另外,我注意到花括号($str{0})也适用。那是怎么回事?
275 php  string  substring 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.