问题列表 - 第3631页

Java:如何检查字符是否属于特定的unicode块?

我需要确定我的输入所属的自然语言.目标是区分混合输入中的阿拉伯语英语单词,其中输入是Unicode并从XML文本节点中提取.我注意到了这堂课Character.UnicodeBlock.它与我的问题有关吗?我怎样才能让它发挥作用?

编辑:Character.UnicodeBlock方法对阿拉伯语很有用,但显然不适用于英语(或其他欧洲语言),因为BASIC_LATINUnicode块包含符号和不可打印的字符以及字母.所以现在我正在使用带有正则表达式matches()String对象的方法"[A-Za-z]+".我可以忍受它,但也许有人可以建议更好/更快的方式.

java regex unicode char

15
推荐指数
2
解决办法
1万
查看次数

确定pyInstaller生成的Python EXE中的应用程序路径

我有一个驻留在单个.py文件中的应用程序.我已经能够让pyInstaller成功地将它捆绑到一个EXE for Windows中.问题是,应用程序需要一个始终位于同一目录中的应用程序旁边的.cfg文件.

通常,我使用以下代码构建路径:

import os
config_name = 'myapp.cfg'
config_path = os.path.join(sys.path[0], config_name)
Run Code Online (Sandbox Code Playgroud)

但是,当从pyInstaller生成的EXE调用sys.path时,它似乎是空白的.当您运行python交互式命令行并尝试获取sys.path [0]时,会发生同样的行为.

有没有更具体的方法来获取当前运行的应用程序的路径,以便我可以找到相对于它的文件?

python executable relative-path pyinstaller

50
推荐指数
5
解决办法
4万
查看次数

为什么库名在其名称中获得额外的0?

我有一个像项目文件这样的小Qt项目:

TEMPLATE = lib
TARGET = record32
VERSION = 0.0.1
DEPENDPATH += .
INCLUDEPATH += .

CONFIG += shared
SOURCES += recorder.cpp
HEADERS += recorder.h
Run Code Online (Sandbox Code Playgroud)

当我从中编译库时qmake && nmake,它会产生文件

record32.obj
record320.lib
record320.dll
...
Run Code Online (Sandbox Code Playgroud)

为什么在lib和dll名称中添加了额外的0?

生成的makefile似乎没有附加它,而只是假设它,Makefile.Release它只是说:

####### Files

SOURCES       = recorder.cpp release\moc_recorder.cpp
OBJECTS       = release\recorder.obj release\moc_recorder.obj
DIST          = 
QMAKE_TARGET  = recorder
DESTDIR        = release\ #avoid trailing-slash linebreak
TARGET         = record320.dll
DESTDIR_TARGET = release\record320.dll
Run Code Online (Sandbox Code Playgroud)

如何防止它并按我的意愿命名我的库?

(注意手动修复makefile.release不是一个可以接受的解决方案)

qt nmake makefile qt4

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

如何组织太胖的Rails模型?

将逻辑从控制器转移到模型中是一种很好的做法.但是在任何复杂的系统中,即使大多数方法按照Rails方式是一个衬里,这也总是导致一个非常大的文件.

我使出车型分裂成其他模块和包括他们在原来的模式,例如model_flags,model_validation等任何人有更好的办法?

编辑:我选择了一个建议使用ActiveConcern的新答案.此外,对于任何对组织代码感兴趣的人,本文" 使ActiveRecord模型变薄 "应该会有很大帮助.

model ruby-on-rails

29
推荐指数
2
解决办法
8986
查看次数

LBYL与Java中的EAFP?

我最近在教自己Python并在代码执行之前发现了关于错误检查的LBYL/EAFP习语.在Python中,似乎接受的样式是EAFP,它似乎与该语言一起使用.

LBYL(大号 OOK 安伏ý OU 大号 EAP):

def safe_divide_1(x, y):
    if y == 0:
        print "Divide-by-0 attempt detected"
        return None
    else:
        return x/y
Run Code Online (Sandbox Code Playgroud)

EAFP(它的ê asier到一个 SK ˚F orgiveness比P ermission):

def safe_divide_2(x, y):
    try:
        return x/y
    except ZeroDivisionError:  
        print "Divide-by-0 attempt detected"
        return None
Run Code Online (Sandbox Code Playgroud)

我的问题是:我从来没有听说过使用EAFP作为主要数据验证结构,来自Java和C++背景.EAFP在Java中使用是否明智?或者是否存在过多的异常开销?我知道实际抛出异常时只有开销,所以我不确定为什么不使用更简单的EAFP方法.这只是偏好吗?

python java error-handling idioms

59
推荐指数
5
解决办法
2万
查看次数

Java Covariants

public class CovariantTest {
    public A getObj() {
        return new A();
    }

    public static void main(String[] args) {
        CovariantTest c = new SubCovariantTest();
        System.out.println(c.getObj().x);
    }
}

class SubCovariantTest extends CovariantTest {
    public B getObj() {
        return new B();
    }
}

class A {
    int x = 5;
}

class B extends A {
    int x = 6;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在编译和运行时打印5.它使用过度返回方法的协变返回.

为什么它会打印5而不是6,因为它在SubCovariantTest类中执行overRidden方法getObj.

有人可以对此有所了解.谢谢.

java

14
推荐指数
4
解决办法
885
查看次数

引脚生成

我正在寻找一个系统,我需要为每个用户分配一个独特的密码以确保安全性.用户只能输入此密码作为识别自己的方法.因此,我不希望用户能够猜测其他用户的密码.假设我将拥有的最大用户数是100000,这个密码应该是多长时间?

例如1234 4532 3423

我应该通过某种算法生成此代码吗?或者我应该随机生成它?

基本上我不希望人们能够猜出其他人的pincode,它应该支持足够数量的用户.

很抱歉,如果我的问题听起来有点令人困惑,但很乐意澄清任何疑问.

非常感谢你.

UPDATE

阅读下面的所有帖子后,我想补充一些细节.

  1. 我想要实现的是与刮刮卡非常相似的东西.
  2. 给用户一张卡,他/她必须划伤以找到密码.
  3. 现在使用此密码,用户必须能够访问我的系统.

我无法添加额外的安全性(例如用户名和密码),因为它会阻止用户使用刮刮卡.我想尽可能地在限制范围内猜测密码.

谢谢你们再次提出惊人的回复.

security random encryption cryptography

16
推荐指数
4
解决办法
1万
查看次数

具有混合表的MySQL事务支持

看起来我需要与MySQL进行交易,我不知道如何使用混合的InnoDB/MyISAM表管理Mysql中的事务,这一切看起来都是一团糟.

你可能会问我为什么要将这些表混合在一起......这就是性能.正如许多开发人员所注意到的那样,InnoDB表通常性能不佳,但作为回报,它会提供更高的隔离级别等......

有没有人对这个问题有任何建议?

mysql performance database-design myisam innodb

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

Cocoa不会捕获Shift Shift修饰符?

我有一个应用程序,我正在尝试捕获shift键修改器来执行一个动作,但是当我运行程序并按下而没有Shift键修改器的普通键时,我会发出一声嘟嘟声并且修改器和键不会被发送到我的keyDown事件.相关代码是:

NSString* eventChars = [theEvent charactersIgnoringModifiers];

if ([eventChars isEqualTo:@"w"]) {
    newPlayerRow++;
    direction = eUp;
} else if ([eventChars isEqualTo:@"x"]) {
    newPlayerRow--;
    direction = eDown;
} else if ([eventChars isEqualTo:@"a"]) {
    newPlayerCol--;
    direction = eLeft;
} else if ([eventChars isEqualTo:@"d"]) {
    newPlayerCol++;
    direction = eRight;
} else {
    [super keyDown:theEvent];
    return;
}

// handle the player firing a bullet
if (([theEvent modifierFlags] & (NSShiftKeyMask | NSAlphaShiftKeyMask)) != 0) {
    NSLog(@"Shift key");
    [self fireBulletAtColumn:newPlayerCol row:newPlayerRow inDirection:direction];
    [self setNeedsDisplay:YES];
} else {
    ... …
Run Code Online (Sandbox Code Playgroud)

macos cocoa

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

你更喜欢"if(var)"还是"if(var!= 0)"?

我已经用C语言编程了几十年了.在某个地方,我决定不再想写:

if (var)    // in C
if ($var)   # in Perl
Run Code Online (Sandbox Code Playgroud)

当我的意思是:

if (var != 0)
if (defined $var and $var ne '')
Run Code Online (Sandbox Code Playgroud)

我认为部分原因是我有一个强类型的大脑,在我看来,"if"需要一个布尔表达式.

或者也许是因为我使用Perl这么多,Perl中的真相和虚假就是这样一个雷区.

或者也许只是因为这些天,我主要是一名Java程序员.

你有什么偏好?为什么?

c perl coding-style

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