Questions tagged «string»

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

2
libc ++中短字符串优化的机制是什么?
该答案很好地概述了短字符串优化(SSO)。但是,我想更详细地了解它在实践中如何工作,特别是在libc ++实现中: 要符合SSO要求,字符串必须多短?这取决于目标体系结构吗? 访问字符串数据时,实现如何区分短字符串和长字符串?它是否像m_size <= 16其他成员变量中的一部分一样简单?(我想它的m_size一部分或一部分也可以用来存储字符串数据)。 我专门针对libc ++提出了这个问题,因为我知道它使用SSO,甚至在libc ++主页上也提到了这一点。 查看来源后,有一些观察结果: libc ++可以为字符串类使用两个略有不同的内存布局进行编译,这由_LIBCPP_ALTERNATE_STRING_LAYOUT标志控制。两种布局还区分了小端和大端机器,这使我们总共有4种不同的变体。在接下来的内容中,我将采用“普通”布局和小字节序。 进一步假设这size_type是4个字节,也value_type就是1个字节,这就是字符串的前4个字节在内存中的样子: // short string: (s)ize and 3 bytes of char (d)ata sssssss0;dddddddd;dddddddd;dddddddd ^- is_long = 0 // long string: (c)apacity ccccccc1;cccccccc;cccccccc;cccccccc ^- is_long = 1 由于短字符串的大小在高7位中,因此在访问它时需要对其进行移位: size_type __get_short_size() const { return __r_.first().__s.__size_ >> 1; } 同样,长字串容量的getter和setter用来__long_mask解决该is_long位。 我仍在寻找第一个问题的答案,即__min_cap对于不同的体系结构,短字符串的容量将获得什么价值? 其他标准库实现 …

2
如何在Swift中检查字符串以(前缀)开头还是以(后缀)结尾
我正在尝试测试Swift字符串是否以某个值开头或结尾。这些方法不存在: var str = "Hello, playground" str.startsWith("Hello") // error str.endsWith("ground") // error 我还想获取前缀和后缀字符串。我可以找到一个子字符串,正如这里和这里所回答的那样,但是范围在Swift中是如此痛苦。 有更简单的方法吗? (我在阅读文档时偶然发现了答案,并且由于我的搜索词没有找到SO答案,因此我在此处添加了问答。)
102 ios  string  swift 

6
获取和删除字符串的第一个字符
我想通过为每个字符分配不同的值来使用字符字符串进行二维漫游。我打算“弹出”字符串的第一个字符,使用它,然后对其余字符串重复此操作。 我怎样才能实现这样的目标? x <- 'hello stackoverflow' 我希望能够执行以下操作: a <- x.pop[1] print(a) 'h' print(x) 'ello stackoverflow'
102 string  r 

22
缩短字符串而无需在JavaScript中切词
我对JavaScript中的字符串操作不太满意,我想知道如何在不删节的情况下缩短字符串。我知道如何使用子字符串,但不知道indexOf或其他任何真正好的方法。 说我有以下字符串: text = "this is a long string I cant display" 我想将其缩减为10个字符,但是如果它不以空格结尾,请完成该单词。我不希望字符串变量看起来像这样: “这是我不能忍受的长字符串” 我希望它在出现空格之前将单词结束。


14
在循环中重用StringBuilder更好吗?
我有一个有关使用StringBuilder的性能相关问题。在一个很长的循环中,我正在操纵a StringBuilder并将其传递给另一个这样的方法: for (loop condition) { StringBuilder sb = new StringBuilder(); sb.append("some string"); . . . sb.append(anotherString); . . . passToMethod(sb.toString()); } StringBuilder在每个循环周期实例化是一个好的解决方案吗?而且像下面这样,调用delete会更好吗? StringBuilder sb = new StringBuilder(); for (loop condition) { sb.delete(0, sb.length); sb.append("some string"); . . . sb.append(anotherString); . . . passToMethod(sb.toString()); }

4
Java等效于带有#的C#逐字字符串
快速提问。是否有等效于@的Java字符串: 例如,我可以@"c:\afolder\afile"使用C#进行处理,并使其在处理时忽略转义字符,而不必这样做"c:\\afolder\\aFile"。是否有Java等效项? 嗯:stackoverflow正在向我逃脱..大声笑。第二个示例应为: c :(双反斜杠)文件夹(双反斜杠)aFile
101 c#  java  string  literals 


19
在Swift中将String转换为Float
我正在尝试转换从UITextField中获取的数字(我认为这些数字实际上是字符串),并将其转换为Float,以便可以对其进行乘法运算。 我有两个UITextfield声明如下: @IBOutlet var wage: UITextField @IBOutlet var hour: UITextField 当用户按下UIButton时,我想计算用户赚取的工资,但是我不能,因为我需要先将其转换为浮动工资,然后才能使用它们。 我知道如何通过执行以下操作将它们转换为整数: var wageConversion:Int = 0 wageConversion = wage.text.toInt()! 但是,我不知道如何将它们转换为浮点数。

4
Python str与unicode类型
使用Python 2.7,我想知道使用type unicode代替真正的优势是什么str,因为它们似乎都能够容纳Unicode字符串。除了能够unicode使用转义字符在字符串中设置Unicode代码之外,还有什么特殊的原因\吗?: 使用以下命令执行模块: # -*- coding: utf-8 -*- a = 'á' ua = u'á' print a, ua 结果:á,á 编辑: 使用Python Shell进行更多测试: >>> a = 'á' >>> a '\xc3\xa1' >>> ua = u'á' >>> ua u'\xe1' >>> ua.encode('utf8') '\xc3\xa1' >>> ua.encode('latin1') '\xe1' >>> ua u'\xe1' 因此,该unicode字符串似乎是使用latin1而不是编码的utf-8,而原始字符串是使用utf-8?编码的 我现在更加困惑!:S
101 python  string  unicode 

7
创建C格式的字符串(不打印它们)
我有一个接受字符串的函数,即: void log_out(char *); 在调用它时,我需要像这样动态创建一个格式化的字符串: int i = 1; log_out("some text %d", i); 如何在ANSI C中做到这一点? 只是,由于sprintf()返回一个int,这意味着我必须至少编写3个命令,例如: char *s; sprintf(s, "%d\t%d", ix, iy); log_out(s); 有什么办法可以缩短?
101 c  string 





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.