我将使用一种算法来编码从XML文件中检索的可变长度但非常长的String字段,然后该编码数据应该保留在数据库中.
后来,当我收到第二个文件时,我需要从数据库中获取编码数据(先前存储过的),然后对其进行解码并使用新数据验证是否重复.
我试过org.apache.commons.codec.binary.Base64它有2种方法:
encodeBase64(Byte[] barray)decodeBase64(String str)它完美无缺,解决了我的问题.但它将55个字符串转换为仅6个字符串.
所以我想知道是否存在这些算法编码2个字符串的情况,这些字符串非常大并且只有1个字符不匹配(例如)到相同的编码字节数组中.
我Base64不太了解课程,但如果有人能帮助我,那将非常有帮助.
如果你可以建议任何其他算法使一个大的String短的固定长度并解决我的目的,我将很乐意使用它.
提前致谢.
我正在尝试从独立的applet连接到在tomcat上运行的servlet:
Servlet的
public void init(ServletConfig config) throws ServletException {
super.init(config);
// Start a daemon thread
try {
daemonThread = new Daemon(this);
daemonThread.start();
}
catch (Exception e) {
}
}
protected int getSocketPort() {
return 8080;
}
public void handleClient(Socket client){
new ScribbleThread(this, client).start();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer();
sb.append("<html><body bgcolor=pink text=red>");
sb.append("<h1 align=center>RUNNING</h1><hr>");
sb.append("</body></html>");
out.println(sb);
out.close();
}
}
Run Code Online (Sandbox Code Playgroud)
Servlet init()创建了这个:
class Daemon extends Thread …Run Code Online (Sandbox Code Playgroud) OpenGL:对于简单的过剩立方体没有光
嗨,我正在尝试研究opengl和过剩的灯光,但我很早就遇到了问题.我有这个代码用自定义相机设置在自定义位置制作一个发光的立方体:
void testApp::draw(){
static float amb[] = {0.4, 0.4, 0.4, 0.0};
static float dif[] = {1.0, 1.0, 1.0, 0.0};
float light_diffuse[] = {1.0, 0.0, 1.0, 1.0};
float light_position[] = {-1.0, 1.0, 1.0, 0.0}; // i tried a lot of positions here!
// set camera
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0, 200, 1200, 0,0,0, 0,1,0);
// set lights
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHT1);
glEnable(GL_LIGHTING);
glMaterialfv(GL_FRONT, GL_AMBIENT, amb);
glMaterialfv(GL_FRONT, GL_DIFFUSE, dif);
// draw scene
ofScale(50, 50, 50);
glPushMatrix();
glutSolidCube(2);
// close …Run Code Online (Sandbox Code Playgroud) 我可以n*m通过执行以下操作
来创建尺寸为2D的数组vector< vector< int > > foo(n, vector< int > (m))。
假设在运行时给了我可变数量的值,例如v_1, v_2, v_3, ..., v_k,想要创建以下内容:
vector< vector< ... vector< int > ... > > foo(v_1, vector< ... > (v_2, vector< ... > ..));
换句话说,创建一个多维的size数组v_1* v_2 * v_3 ... *v_k。我怎样才能做到这一点?这可能吗?
我有一个关于函数式编程的大学课程,我使用SML.作为考试的准备,我正在研究一些没有解决方案的旧考试.
我真正遇到问题的唯一问题之一是使用以下问题foldl:
考虑程序骨架:fun addGt k xs = List.foldl(...)... xs; 填写两个缺失的部分(由点......表示),这样addGt k xs是xs中那些大于k的元素的总和.例如,addGt 4 [1,5,2,7,4,8] = 5 + 7 + 8 = 20
我确信这很简单,但我很难理解foldl和foldr函数.
我现在有以下内容(如果你问我的编译器,这似乎是非常错误的!):
fun addGt(k,xs) = List.foldl ( fn x => if x > k then op+ else 0) 0 xs;
Run Code Online (Sandbox Code Playgroud)
我真的很感激这个问题的一些帮助,也许是一个非常简短的评论,可以说明foldl和foldr功能!
非常感谢.
我遇到了这样一个编程面试问题.但对我来说,如何知道如何在这里使用位移是不明显的.有人好心解释.谢谢.
数组的大小为N,整数在0到1024之间(允许重复).另一个整数数组的大小为M,对数字没有限制.查找第一个数组中哪些元素存在于第二个数组中.(如果您正在使用额外的内存,请考虑使用按位运算符来最小化它)
我想知道现实世界中的bitshift运算符是什么意思.以及如何识别需要比特移位方法的问题.
谢谢桑杰
我试图进入list = list.newrails控制台时遇到问题.我收到以下错误消息:
NoMethodError: undefined method `new’ for nil:NilClass
from /Users/csamanian/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.8/lib/active_support/whiny_nil.rb:48:in `method_missing’
from (irb):1
from /Users/csamanian/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.8/lib/rails/commands/console.rb:44:in `start’
from /Users/csamanian/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.8/lib/rails/commands/console.rb:8:in `start’
from /Users/csamanian/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.8/lib/rails/commands.rb:23:in `’
from script/rails:6:in `require’
from script/rails:6:in `’
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?非常感谢!
如果我有一个String我要在自由格式字段中检查的设定数量(计算机生成,那么可能每秒很多)这将是一个更快的实现?
private static HashSet<String> values = new HashSet<String>();
static {
... add 5 Strings to the Set
}
public void someMethod() {
if (values.contains(enteredValue))
...
}
Run Code Online (Sandbox Code Playgroud)
或者用5 String.equals|| 做if ?
这对我来说似乎不费吹灰之力,但也许我错了.一个而不是另一个的任何缺点?
从ac套接字向java套接字发送UTF8字符串时遇到了一些麻烦.以下方法工作正常:
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF8"));
main.title = in.readLine();
Run Code Online (Sandbox Code Playgroud)
但后来我需要int java.io.InputStream.read(byte[] b, int offset, int length)一个BufferedReader不存在的方法.那么我试着采用DataInputStream
DataInputStream in2 = new DataInputStream(socket.getInputStream());
Run Code Online (Sandbox Code Playgroud)
但它所读的一切都只是垃圾.
然后我尝试使用该readLine()方法,DataInputStream但这并没有给我正确的UTF8字符串.
你看到了我的困境.我不能为一个InputStream使用两个读卡器吗?或者我可以转换DataInputStream.readLine()结果并将其转换为UTF8吗?
谢谢,马丁