Tag: c#

DDD – 实体状态转换

考虑以下简化示例: public class Ticket { public int Id; public TicketState State; public Ticket() { // from where do I get the “New” state entity here? with its id and name State = State.New; } public void Finished() { // from where do I get the “Finished” state entity here? with its id and name State […]

在Rabin-Karp字符串搜索算法中是否使用了滚动哈希函数的任何工作实现?

我正在寻找使用滚动哈希函数,因此我可以使用非常大的字符串的n-gram哈希值。 例如: “stackoverflow”,分解成5克将是: “stack”,“tacko”,“ackov”,“ckove”,“kover”,“overf”,“verfl”,“erflo”,“rflow” 这对于滚动哈希函数是理想的,因为在我计算第一个n-gram哈希之后,以下的哈希计算相对便宜,因为我只需要删除第一个哈希的第一个字母并添加第二个哈希的新的最后一个字母。 我知道通常这个哈希函数生成为: H = c 1 a k – 1 + c 2 a k – 2 + c 3 a k – 3 + … + c k a 0其中a是常数,c1,…,ck是输入字符。 如果您在Rabin-Karp字符串搜索算法上遵循此链接,它会声明“a”通常是一些大素数。 我希望我的哈希值存储在32位整数中,因此素数的大小应该是“a”,这样我就不会溢出整数? 在我可以使用的某个地方是否存在此哈希函数的现有实现? 这是我创建的一个实现: public class hash2 { public int prime = 101; public int hash(String text) { int hash […]

Lucene作为数据存储

是否可以将Lucene用作完整的数据存储(就像其他(mongo,couch)nosql变体一样)。 我知道有一些限制,比如一个索引器的新更新文档不会在其他索引器中显示。 所以我们需要重新启动索引器才能获得更新。 但我最近偶然发现了solr ,似乎某些快照复制可以避免这些问题。 所以我认为我可以使用lucene作为数据存储,因为它还使用mongo和couch内部用于管理文档的相同类型的文档(基于JSON),并且其经过validation的索引算法可以超快速地获取记录。 但我很好奇有没有人尝过这个…? 如果没有选择这种方法的原因是什么。

局部变量或类字段?

我今天读了一篇关于 C#和Java 性能改进的文章 。 我仍然坚持这个: 19.不要过度使用实例变量 使用局部变量可以提高性能。 示例1中的代码执行速度比示例2中的代码快。 例1: public void loop() { int j = 0; for ( int i = 0; i<250000;i++){ j = j + 1; } } 例2: int i; public void loop() { int j = 0; for (i = 0; i<250000;i++){ j = j + 1; } } 实际上,我不明白为什么在我可以对字段进行简单访问时,每次调用loop函数时实例化一些内存并释放它应该更快。 […]

适用于Java的Bitconverter

按照问题https://stackoverflow.com/questions/1738244/what-is-the-java-equivalent-of-net-bitconverter中提供的建议,我已经开始为Java实现我自己的bitconverter但是没有得到相同的结果。 有人可以指导我可能做错了吗? public static byte[] GetBytes(Integer value) { ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); DataOutputStream stream = new DataOutputStream(byteStream); try { stream.writeInt(value); } catch (IOException e) { return new byte[4]; } return byteStream.toByteArray(); } byte[] result = BitConverter.GetBytes(1234); //JAVA: [0, 0, 4, -46] byte[] result = BitConverter.GetBytes(1234); //C#: [210, 4, 0, 0]

字节集合与java中的ByteBuffer类似

我需要一个类似于Java的ByteBuffer的C#实现。 感兴趣的方法 – .remaining() – 返回当前位置和限制之间的元素数量。 – .array() – .clear() – .put(byte [],int,int) 我开始使用MemoryStream …但是没有clear()和很多即兴创作此外,我在Koders上找到了ac#implementation: http : //www.koders.com/csharp/fid2F8CB1B540E646746D3ADCB2B0AC867A0A8DCB06.aspx ?s=socket#L2。我将使用..但也许你们知道更好的东西

解密由.NET的RijndaelManaged使用Java加密的字节

我正在尝试解密使用RijndaelManaged of .NET / C#加密的东西,使用Java进行解密。 C#程序不是我的; 我无法将其更改为更具互操作性。 但我知道它是如何加密的: byte[] bytes = new UnicodeEncoding().GetBytes(password); // edit: built-in is 8chars FileStream fileStream = new FileStream(outputFile, FileMode.Create); RijndaelManaged rijndaelManaged = new RijndaelManaged(); CryptoStream cryptoStream = new CryptoStream((Stream) fileStream, rijndaelManaged.CreateEncryptor(bytes, bytes), CryptoStreamMode.Write); 我不知道如何在Java端解密这个。 我发现最接近有用的是这篇博客文章 ,但它对实际细节很清楚,我无法实现解密器。 编辑:我是个白痴,现在有了它的工作。 UnicodeEncoding是UTF-16LE,而我使用的是UTF-8。 在插入密码时切换到正确的编码已修复程序。 我还需要获得BouncyCastle并执行Cipher.getInstance(“AES/CBC/PKCS7Padding”, “BC”); finaledit:这是用Java解密来自.NET的默认 RijndaelManaged流的代码,假设它是使用原始密码作为密钥创建的: Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); String password = “kallisti”; // […]

C#到Java TripleDES,结果不同

我正在尝试将此C#加密算法转换为Java; 但是,我一直在检索略有不同的加密结果(尚未尝试过解密)。 指出我无法更改C#代码也可能很重要。 但是当我在字符串“test”中调用C#中的加密函数时,它将返回nmj8MjjO52y928Syqf0J+g==但是在Java中它将返回C6xyQjJCqVo= C# private static String key = “012345678901234567890123”; public static string encrypt(String stringToEncrypt) { TripleDES des = CreateDES(key); ICryptoTransform ct = des.CreateEncryptor(); byte[] input = Encoding.Unicode.GetBytes(stringToEncrypt); byte[] output = ct.TransformFinalBlock(input, 0, input.Length); //return output; return Convert.ToBase64String(output); } public static String decrypt(string encryptedString) { byte[] input = Convert.FromBase64String(encryptedString); TripleDES des = CreateDES(key); ICryptoTransform […]

使用Java Access Bridge实现自动化

我可以使用Java Access Bridge事件从Java应用程序中的UI控件(按钮/编辑框/复选框等)中捕获文本。 我怎么能够: 在编辑框中设置文本 单击按钮 使用Java Access Bridge API调用?

字符串SHA-512编码:C#和JAVA结果不同

我试图比较sha512编码的两个不同的字符串。 但是,结果是不同的。 它可能是我所说的编码问题。 我希望你能帮助我。 这是我的Java代码: MessageDigest digest = java.security.MessageDigest.getInstance(“SHA-512”); digest.update(MyString.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); for (int i = 0; i < messageDigest.length; i++) { String h = Integer.toHexString(0xFF & messageDigest[i]); while (h.length() < 2) h = "0" + h; hexString.append(h); } return hexString.toString(); 而且,这是我的C#代码: UnicodeEncoding UE […]