在日本的Windows PC上,这行C#抛出了一个格式异常:
double d = double.Parse("NaN");
Run Code Online (Sandbox Code Playgroud)
这条线在我的美国电脑上运行良好
不知道从哪里开始排除故障.有什么想法吗?
吉姆,提前谢谢
我试图像这样解析一个字符串:
f2cff0a43553b2e07b6ae3264bc085a
到BigInt然而当使用BigInt的String构造函数时,我明显得到一个Number格式异常:
BigInteger bi = new BigInteger("f2cff0a43553b2e07b6ae3264bc085a");
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以做到这一点?
我有一个javascript聊天机器人,一个人可以在输入框中输入任何他们喜欢的问题,并希望得到准确的答案.我可以做到这一点,但我知道我这一切都错了,因为我不知道这个数字在句子中出现的位置.如果一个人确切输入:
什么是5的平方根这很好用.
如果他输入这样的东西,它就不会.
什么是5的平方根
5的平方根是什么
你知道5的平方根是什么吗?
等等
我需要能够确定句子中出现的数字,然后从那里进行计算.请注意,下面的行是更大的工作聊天机器人的一部分.在下面的行中,我只是试图能够回答任何平方根问题,无论数字出现在句子中的哪个位置.我也知道有一个开放式输入框有许多陷阱,一个人可以输入任何拼写错误等.这只是为了娱乐而不是一个严肃的科学项目.:)
if(
(word[0]=="what's") &&
(word[1]=="the") &&
(word[2]=="square") &&
(word[3]=="root") &&
(word [4]=="of") &&
(input.search(/\d{1,10}/)!=-1) &&
(num_of_words==6)
){
var root= word[5];
if(root<0){
document.result.result.value = "The square root of a negative number is not possible.";
}else{
word[5] = Math.sqrt(root);
word[5] = Math.round(word[5]*100)/100
document.result.result.value = "The square root of "+ root +" is "+ word[5] +".";
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,机器人是使用"If statemments"编写的.如果在这种情况下输入不包括单词"what"和"square root"和"some number",那么该行不会触发,并且机器人会通过一般的"我不知道类型响应".所以我希望任何答案都适合我正在使用的格式.善待,我是新来的.我喜欢制作机器人,但我不是一个程序员.谢谢.
我有点陷入一个问题,我无法解析字符串中的日期和时间,我正在从文本文件中读取.我得到的字符串采用以下格式:
05SEP1998 2400
我试图通过以下代码解析字符串:
string dateTimeStr = "05SEP1998 2400"
var provider = CultureInfo.InvariantCulture;
const string Format = "ddMMMyyyy hhmm";
var dateTime = DateTime.ParseExact(dateTimeStr, Format, provider);
Run Code Online (Sandbox Code Playgroud)
但在解析时,上面的代码抛出FormatException:
String was not recognized as a valid DateTime.
有人可以帮我解决这个问题吗?
语境:
我有一个代码/文本编辑器,而不是我想要优化.目前,该程序的瓶颈是语言解析器,而不是扫描所有关键字(有不止一个,但它们的编写方式基本相同).
在我的计算机上,编辑器会在1,000,000代码行周围延迟文件.在像Raspberry Pi这样的低端计算机上,延迟开始得更快(我不记得确切,但我想的10,000是代码行).虽然我从来没有看到比1,000,000代码行更大的文档,但我确信它们在那里,我希望我的程序能够编辑它们.
题:
这引出了一个问题:在大型动态字符串中扫描单词列表的最快方法是什么?
以下是可能影响算法设计的一些信息:
瓶颈的解决方案:
这(大致)是我目前用于解析字符串的方法:
// this is just an example, not an excerpt
// I haven't compiled this, I'm just writing it to
// illustrate how I'm currently parsing strings
struct tokens * scantokens (char * string, char ** tokens, int tcount){
int result = 0;
struct tokens * tks = tokens_init ();
for (int i = 0; string[i]; i++){
// qualifiers for C are: …Run Code Online (Sandbox Code Playgroud) Logstash的grok是一个基于正则表达式构建的字符串解析工具,它提供了许多模式,使字符串解析工作变得更加容易,我第一次使用它时就爱上了它.但不幸的是,它是用Ruby编写的,因此无法在我的Python项目中使用,所以我想知道是否有任何Python实现的grok,或者是否有任何Python替代方案可以像grok一样简化字符串解析?
在解析FTX(自由文本)字符串时,我需要使用+分隔符将其拆分,但只有在它没有转义字符(例如,?)之前.所以这个字符串nika ?+ marry = love+sandra ?+ alex = love应解析为两个字符串:nika + marry = love和sandra + alex = love.使用String.Split('+')显然是不够的.我可以以某种方式实现吗?
在我看来,一种方法是?+用一些独特的字符(或一连串的字符)来代替,例如,@#@使用"+"作为分隔符拆分然后替换@#@回来+,但这在任何可能的情况下都是不可靠和错误的我能想到的方式.
?仅作为转义字符使用,:或者+在任何其他情况下,它被视为常规字符.
目前我们这样做......
let parseDate defaultVal text =
match DateTime.TryParse s with
| true, d -> d
| _ -> defaultVal
Run Code Online (Sandbox Code Playgroud)
是否有可能做到这一点...
let d : DateTime = tryParse DateTime.MinValue "2015.05.01"
Run Code Online (Sandbox Code Playgroud) 根据文件strtoul,关于它的回报价值......
此函数将转换后的整数作为long int值返回.如果无法执行有效转换,则返回零值.
如果我正在解析用户提供的字符串"0",对于我的应用程序,"0"可能是有效条目,该怎么办?在这种情况下,似乎我无法确定是否使用了strtoul是否执行了有效的转换.还有另一种方法来处理这个问题吗?
string-parsing ×10
c ×2
c# ×2
java ×2
.net ×1
android ×1
biginteger ×1
constraints ×1
f# ×1
inline ×1
javascript ×1
localization ×1
logstash ×1
math ×1
nlp ×1
parsing ×1
python ×1
regex ×1
split ×1
square-root ×1
string ×1
strtoul ×1