Tag: 语言 不可知的

以任何顺序匹配可选捕获组

在解析用户输入时存在许多情况,其中用户有机会向输入添加若干可选标志,这些标志应该以任何顺序被接受。 如何使用正则表达式对其进行解析,以便每个标志位于其自己的捕获组中(如果存在)? 例如: 有一个必需的令牌a ,然后是3个可选的令牌,它们可以按任何顺序排列b , c和d 。 一些可接受的输入将是: a ab ac abc acb abcd adbc acdb 捕获组应始终如下所示: 0 => (anything, this is ignored) 1 => a 2 => b or null 3 => c or null 4 => d or null 这个问题有几个部分已经得到解答: 使用(…)? 表单以使捕获组可选 使用先行(?=.*b)(?=.*c)(?=.*d)允许事物处于任何顺序 但这些策略的组合不起作用: (a)(?=.*(b)?)(?=.*(c)?)(?=.*(d)?) Regex101测试 正则表达式允许以任何顺序找到可选令牌? (答案可以使用任何风格的正则表达式)

JAVA中的Excel到Json转换器

我试图将excel数据转换为JSON格式。 我成功通过读取行​​和列来转换Excel数据并将数据设置为列表,然后将该List转换为JSON格式。 但是,我坚持下一级JSON,格式就像 这是我使用的代码,但尚未开始如何使像3列数据这样的嵌套数据应该像上面的图像一样放在一个数组中。 Pojo类 : public class Products implements Serializable{ @Id @Column(name=”ID”) private String id; @Column(name=”PRODUCTID”) private String productId; @Column(name=”NAMEID”) private String nameId; @Column(name=”NAME”) private String name; @Column(name=”P_DESC”) private String desc; @Column(name=”DIMENSION”) private String dimension; @Column(name=”CATEGORY”) private String category; @Column(name=”SUB_CATEGORY”) private String subcategory; @Column(name=”CATEGORYID”) private String categoryId; @Column(name=”SUBCATEGORYID”) private String subcategoryId; @Column(name=”TAGS”) private String […]

计算2点之间的网格距离

我需要计算2点之间的网格距离。 允许的运动是水平和垂直的,以及与下一个邻居的对角线(所以45度旋转)。 所以曼哈顿距离不是一个选择。 欧几里德距离也不是一个选项,因为它不会沿着网格正确移动,这可能导致一个低值(如红线所示)。 我正在寻找距离在绿色线条中从一个细胞移动到另一个细胞的距离。 公式最好是快速的。

找到所有“字符相等”字符串的高效算法?

我们如何编写一个输出输入字符串“ homoglyph equivalent ”的高效函数? 例1 (伪代码): homoglyphs_list = [ [“o”, “0”], // “o” and “0” are homoglyphs [“i”, “l”, “1”] // “i” and “l” and “1” are homoglyphs ] input_string = “someinput” output = [ “someinput”, “s0meinput”, “somelnput”, “s0melnput”, “some1nput”, “s0me1nput” ] 例2 : homoglyphs_list = [ [“rn”, “m”, “nn”], ] input_string = “rnn” output […]

我应该使用复合主键吗?

在Java的JPA中,似乎只有第二类支持复合数据库密钥(通过EmbeddedId或IdClass注释)。 当我读到复合键时,无论语言如何,人们都会不断发现,因为它们是一件坏事。 但我无法理解为什么。 这些天使用复合键是否仍然可以接受? 如果没有,为什么不呢? 我找到了一个同意我的人: http : //weblogs.sqlteam.com/jeffs/archive/2007/08/23/composite_primary_keys.aspx 但另一个不这样做的人: http : //weblogs.java.net/blog/bleonard/archive/2006/11/using_composite.html 是仅仅是我,还是人们无法区分复合键的适用与否? 当表不表示实体时,即当它表示连接表时,我看到复合主键很有用。 一个简单的例子: Actor { Id, Name, Email } Movie { Id, Name, Year } Character { Id, Name } Role { Actor, Movie, Character } 这里的Actor,Movie和Character显然受益于Id列作为主键。 但是Role是一个多对多连接表。 我认为创建一个id只是为了识别数据库中的一行是没有意义的。 很明显,主键是{ Actor, Movie, Character } 。 它似乎也是一个相当有限的function,特别是如果连接表中的数据一直在变化,一旦主键序列回绕到0,您就会发现主键冲突。 那么,回到最初的问题,使用复合主键仍然是可以接受的做法吗? 如果没有,为什么不呢?