问题列表 - 第13000页

isNumber(string)方法的最佳实现

在我有限的经验中,我参与了几个项目,这些项目有一些字符串实用程序类,其中包含确定给定字符串是否为数字的方法.这个想法一直都是一样的,然而,实施却有所不同.有些使用try/catch包围解析尝试

public boolean isInteger(String str) {
    try {
        Integer.parseInt(str);
        return true;
    } catch (NumberFormatException nfe) {}
    return false;
}
Run Code Online (Sandbox Code Playgroud)

和其他人匹配正则表达式

public boolean isInteger(String str) {
    return str.matches("^-?[0-9]+(\\.[0-9]+)?$");
}
Run Code Online (Sandbox Code Playgroud)

这些方法中的一种比另一种更好吗?我个人更喜欢使用正则表达式方法,因为它很简洁,但是如果在迭代过程中调用,例如,数十万个字符串的列表,它会在par上执行吗?

注意:由于我是网站的新手,我不完全理解这个社区Wiki业务,所以如果这属于那里让我知道,我很乐意移动它.

编辑: 有了所有的TryParse建议,我把Asaph的基准代码(感谢一个很棒的帖子!)移植到C#并添加了一个TryParse方法.而且看起来,TryParse赢得了胜利.然而,尝试捕获方法耗费了大量时间.我认为我做错了什么!我还更新了正则表达式来处理负数和小数点.

更新的C#基准代码的结果:

00:00:51.7390000 for isIntegerParseInt
00:00:03.9110000 for isIntegerRegex
00:00:00.3500000 for isIntegerTryParse
Run Code Online (Sandbox Code Playgroud)

使用:

static bool isIntegerParseInt(string str) {
    try {
        int.Parse(str);
        return true;
    } catch (FormatException e){}
    return false;
}

static bool isIntegerRegex(string str) {
    return Regex.Match(str, "^-?[0-9]+(\\.[0-9]+)?$").Success;
}

static bool isIntegerTryParse(string str) {
    int bob;
    return Int32.TryParse(str, out bob); …
Run Code Online (Sandbox Code Playgroud)

c# performance

18
推荐指数
1
解决办法
7万
查看次数

Objective-C与C#相比如何?

我最近购买了一台Mac,主要用于VMWare Fusion下的C#开发.随着所有不错的Mac应用程序的出现,我开始考虑Xcode潜伏,只需点击一下即可安装,并学习Objective-C.

两种语言之间的语法看起来非常不同,可能是因为Objective-C起源于C,而C#起源于Java/C++.但是可以学习不同的语法,所以应该没问题.

我主要担心的是使用该语言,是否有助于生成结构良好,可读且优雅的代码.我非常喜欢LINQ和C#中的var等功能,并想知道Objective-C中是否有等价物或更好/不同的功能.

我会错过使用Objective-C开发哪些语言功能?我会获得什么功能?

编辑:框架比较是有用和有趣的,但语言比较是这个问题的真正要求(部分是我最初标记的错误.net).据推测,Cocoa和.NET本身都是非常丰富的框架,两者都有其目的,一个针对Mac OS X和另一个Windows.

感谢您到目前为止经过深思熟虑和合理平衡的观点!

c# objective-c

86
推荐指数
6
解决办法
9万
查看次数

是否可以将TextCtrl限制为仅在wxPython中接受数字?

我想要一个只接受数字的文本控件.(只需45或366之类的整数值)

做这个的最好方式是什么?

wxpython textctrl

7
推荐指数
2
解决办法
9000
查看次数

异常消息的默认编码

以下代码检查了float()在输入非ascii符号时方法的行为:

import sys

try:
  float(u'\xbd')
except ValueError as e:
  print sys.getdefaultencoding() # in my system, this is 'ascii'
  print e[0].decode('latin-1') # u'invalid literal for float(): ' followed by the 1/2 (one half) character
  print unicode(e[0]) # raises "UnicodeDecodeError: 'ascii' codec can't decode byte 0xbd in position 29: ordinal not in range(128)"
Run Code Online (Sandbox Code Playgroud)

我的问题:为什么错误信息e[0]以Latin-1编码?默认编码是Ascii,这似乎是unicode()预期的.

平台是Ubuntu 9.04,Python 2.6.2

python encoding exception python-2.x

6
推荐指数
2
解决办法
3620
查看次数

Perl有一个jUnit吗?

我使用OO Perl创建了一些业务类,我想确保在更改代码时不会破坏它们.听起来像单元测试是要走的路.

是否有类似于Perl的jUnit?

随意详细说明如何在Perl项目中实现单元测试.

perl junit unit-testing

9
推荐指数
3
解决办法
2543
查看次数

从Java睡眠Windows

是否有命令在java上使用Windows来让计算机进入睡眠状态?

java windows sleep standby

2
推荐指数
3
解决办法
6514
查看次数

具有强名称的C#插件架构:一种误解

我有一个服务器可执行文件与Active Directory对话以检索用户信息.除了AD之外,这个exe还允许客户编写自己的插件来与自定义用户目录进行通信.

此可执行文件名称很强.

以下是真实的陈述:

为了使强名称程序集加载另一个程序集,加载的程序集也必须使用相同的键进行签名.

如果程序集没有强签名,则以下代码返回null,没有错误指示程序集未正确签名.请注意,如果我对程序集进行签名,我会得到一个IService实例.这让我相信加载的程序集必须是强签名的.

Assembly assembly = Assembly.LoadFrom(path);

foreach (Type t in assembly.GetTypes())
{
    if (t.GetInterface(typeof(IService).FullName) != null)
    {
      return (Activator.CreateInstance(t) as IService);
    }
}
Run Code Online (Sandbox Code Playgroud)

那么,这是否意味着如果你有一个强签名的程序集和支持程序集插件,它们也必须签名 - 插件编写者必须使用相同的密钥签名?这听起来不对.

最后,假设我有一个实现IService接口的程序集,但也引用了一个程序集,它引用了另一个程序集,每个程序集都用不同的密钥签名.我尝试加载时会发生什么?他们都应该用同一把钥匙签名吗?

c# plugins strongname assemblies key

3
推荐指数
1
解决办法
2215
查看次数

ORM选择n + 1表现; 加入或不加入

对此有类似的问题,但我认为没有人问过这个问题.

场景:

客户 - 订单(订单具有客户ID) - 订单部分 - 部分

我想要一个查询,它返回一个客户及其所有订单和每个订单及其零件.

现在我有两个主要选择:

  1. 使用嵌套循环(生成单独的查询)
  2. 使用数据加载选项(产生单个查询连接)

问题:

关于ORM的大多数建议和示例建议使用选项2,我可以看到原因.但是,选项2可能会发回大量重复数据,例如:

选项1结果(3个查询):

ID  Name       Country
1   Customer1  UK

ID  Name
1   Order1
2   Order2

ID  Name
1   Part1
2   Part2
3   Part3

选项2结果(1个查询):

ID  Name       Country  ID  Name    ID Name
1   Customer1  UK       1   Order1  1  Part1
1   Customer1  UK       1   Order1  2  Part2
1   Customer1  UK       1   Order1  3  Part3
1   Customer1  UK       2   Order2  1  Part1
1   Customer1  UK       2   Order2  2  Part2

选项1发回13个字段,包含3个查询.选项2在1个查询中发回42个字段.现在假设Customer表有30个字段,Orders有更复杂的子连接,数据复制很快就会变得庞大. …

sql performance orm

10
推荐指数
1
解决办法
2058
查看次数

在html页面上链接UNC /网络驱动器

只是一个基本的HTML链接问题.

我有一个Intranet设置,我需要链接到一些网络驱动器.它们位于\ server_drive\blahblah\doc.docx等驱动器上

使用file://不适用于IE8或Firefox.我该如何链接到这些文件?

html unc hyperlink

48
推荐指数
2
解决办法
10万
查看次数

有人试过Solace吗?Solace - 一个多语言支持平台

有人试过Solace吗?

"Solace是一个用Python编写的完全开源的多语言支持和知识交流平台."

只想知道你的经历.开源中是否还有其他此类平台?

python platform open-source

6
推荐指数
1
解决办法
1014
查看次数