我试图在字符串过滤器中使用此方法:
public function truncate($string, $chars = 50, $terminator = ' …');
Run Code Online (Sandbox Code Playgroud)
我期待这个
$in = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYXZ1234567890";
$out = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV …";
Run Code Online (Sandbox Code Playgroud)
还有这个
$in = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ??????????????????????????????";
$out = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ?????????????????? …";
Run Code Online (Sandbox Code Playgroud)
这是$chars减去$terminator字符串的字符.
此外,滤波器应该在$chars极限以下的第一个字边界切割,例如
$in = "Answer to the Ultimate Question of Life, the Universe, and Everything.";
$out = "Answer to the Ultimate Question of Life, the …";
Run Code Online (Sandbox Code Playgroud)
我很确定这应该适用于这些步骤
但是,我现在尝试了各种组合str*和mb_*功能,但都产生了错误的结果.这不是那么困难,所以我显然缺少一些东西.有人会为此分享一个有效的实现,或者指向一个资源,我终于可以理解如何做到这一点.
谢谢
PS是的,我之前已经检查过https://stackoverflow.com/search?q=truncate+string+php :)
我正在使用一个小型搜索引擎来显示具有完整路径的匹配文件名.而且重要的是我需要提供通配符(GLOB)搜索*.doc,*list*.xlx或者*timesheet*或者???.doc或类似的东西.
我找到一些相关的解决方案
在小于O(n)的范围内搜索与模式"abc:*:xyz"匹配的字符串
但我正在寻找有效的算法,可以在不到一秒的时间内找到百万个文件名中的匹配,因此比O(n)更好.
我正在考虑两阶段算法,子串数组(后缀数组+前缀数组)搜索第一阶段和正常RegEx搜索通过第一阶段第二阶段的结果.
任何帮助将不胜感激...
我对此代码感到困惑:(http://www.joelonsoftware.com/articles/CollegeAdvice.html)
while (*s++ = *t++);
Run Code Online (Sandbox Code Playgroud)
执行的顺序是什么?是*s =*t首先完成,然后它们各自递增?或者其他方式?
谢谢.
编辑:如果是这样的话:
while(*(s++) = *(t++));
Run Code Online (Sandbox Code Playgroud)
和
while(++*s = ++*t);
Run Code Online (Sandbox Code Playgroud) 如何将整数转换为字符串值? 这一定很容易."在这方面,雅人最擅长解释." 我还在研究这些愚蠢的柜台.
需要一起加入这个
//My counter project "sends to dynamic text field"
var timer:Timer = new Timer(10);
var count:int = 0; //start at -1 if you want the first decimal to be 0
var fcount:int = 0;
timer.addEventListener(TimerEvent.TIMER, incrementCounter);
timer.start();
function incrementCounter(event:TimerEvent) {
count++;
//
fcount=int(count*count/10000);//starts out slow... then speeds up
//
var whole_value:int = int(fcount / 100); //change value
var tenths:int = int(fcount / 10) % 10;
var hundredths:int = int(fcount) % 10;
mytext.text = whole_value + " : …Run Code Online (Sandbox Code Playgroud) 我有一个从解析xml站点得到的字符串.
http://www.arijasoft.com/givemesomthing.php?a=3434&b=435edsf&c=500
Run Code Online (Sandbox Code Playgroud)
我想有一个NSString函数,可以解析c的值.是否有默认功能或我必须手动编写它.
我需要对写入模块的数据进行解析,并且使用string.h的strtok()函数会很有用.但是我试过了
#include <string.h>
Run Code Online (Sandbox Code Playgroud)
和
#include <linux/string.h>
Run Code Online (Sandbox Code Playgroud)
没有成功.这可能吗?或者我是否必须编写自己的strtok函数?
谢谢
我想在日志文件中输出标题行,然后在数据前输出一行" - ".为此,我创建了一个标题字符串,然后输出相同数量的' - '.
但是下面的代码总是因CONSTRAINT_ERROR而失败,因为生成的字符串不是1024个字符.在Ada中,字符串分配需要完全相同的长度而不仅仅是足够的容量.
选项1)是计算确切的长度,但对未来的变化是脆弱的.选项2)是使用String以外的东西.
procedure F() is
Msg : String(1..1024);
begin
Open_Log();
Msg := FLS(" Field1", 12) &
"|" & FLS(" Field2", 12) &
"|" & FLS(" Field3", 16);
Log_To_File("# " & Msg);
Log_To_File("# " & Fill_String(Msg'Last, '-'));
end;
Run Code Online (Sandbox Code Playgroud) 我一直试图围绕这个FXCop违规行为"DoNotDeclareReadOnlyMutableReferenceTypes"
MSDN:http://msdn.microsoft.com/en-us/library/ms182302%28VS.80%29.aspx
来自MSDN的代码会导致此违规行为:
namespace SecurityLibrary
{
public class MutableReferenceTypes
{
static protected readonly StringBuilder SomeStringBuilder;
static MutableReferenceTypes()
{
SomeStringBuilder = new StringBuilder();
}
}
}
Run Code Online (Sandbox Code Playgroud)
从Jon 在这里和这里的答案,我理解持有对象引用的字段(在本例中为SomeStringBuilder)是readonly而不是对象本身(由其创建new StringBuilder())
所以以这个例子为例,一旦该字段引用它,我将如何更改对象本身?我喜欢Eric Lippert关于如何更改只读数组的示例,并希望看到类似于任何其他可变引用类型的内容
我需要编写一个程序,它将浏览各种长度的字符串,并只选择那些使用我定义的集合中的符号(特别是日文字母)编写的程序.字符串将包含用不同语言(德语,法语,阿拉伯语,俄语,英语等)编写的单词.显然有大量可能的角色.我不知道使用哪种结构?我现在正在使用Delphi 7.任何人都可以建议如何编写这样的程序?
我有一个包含16个字母数字字符的字符串,例如F4194E7CC775F003.我想将其格式化为F419-4E7C-C775-F003.
我试过用
string.Format("{0:####-####-####-####}","F4194E7CC775F003");
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为它不是数值.
所以我想出了以下内容:
public class DashFormatter : IFormatProvider, ICustomFormatter
{
public object GetFormat(Type formatType)
{
return this;
}
public string Format(string format, object arg, IFormatProvider formatProvider)
{
char[] chars = arg.ToString().ToCharArray();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < chars.Length; i++)
{
if (i > 0 && i % 4 == 0)
{
sb.Append('-');
}
sb.Append(chars[i]);
}
return sb.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
并通过使用
string.Format(new DashFormatter(), "{0}", "F4194E7CC775F003");
Run Code Online (Sandbox Code Playgroud)
我能够解决问题,但是我希望有更好/更简单的方法来解决它?也许一些LINQ魔术?
谢谢.