我有一组保存的 html 文件,其中包含形式为http://mywebsite.com/showfile.cgi?key=somenumber 的链接,但我想取消问号(侧面故事是 firefox 讨厌?并随机转换它到 %3F 我确定有一些神奇的修复,但那是另一个问题......)
但是,我认为我的代码导致在 bash 将选项存储为变量时无法正确读取/保存/处理问号字符
# Doesn't work (no pattern matched)
SED_OPTIONS='-i s/\.cgi\?key/\.cgikey/g'
# Works e.g. http://mywebsite.com/showfileblah?key=somenumber
SED_OPTIONS='-i s/\.cgi/blah/g'
# Leaves question mark in e.g. http://mywebsite.com/showfile.blah?key=somenumber
SED_OPTIONS='-i s/cgi\?/blah/g'
# Actual sed command run when using SED_OPTIONS (I define FILES earlier in
# the code)
sed $SED_OPTIONS $FILES
# Not using the SED_OPTIONS variable works
# e.g. http://mywebsite.com/showfile.cgikey=somenumber
sed -i s/\.cgi\?key/\.cgikey/g $FILES
Run Code Online (Sandbox Code Playgroud)
如何使用 SED_OPTIONS 变量获得完整的命令?
什么是最有效的方法(在Java中)将数字n舍入到最接近的10的幂,其中包含比原始数字多一个数字?
例如3 - > 10
432 - > 1,000
241,345 - > 1,000,000
有没有办法将它放在一个O(1)线上?
我能看到的一个简单方法是使用for循环并增加10的幂,直到n /(10 ^ i)<1,但那不是O(1)而是O(log n).(好吧,我正在猜测它是因为它涉及一个力量的日志!)
什么时候使用比较运算符是安全的,例如==,> =,<在Java中使用Integer对象而不是原始的int?
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
我知道==对于引用是危险的,你应该使用.equals,但其他运算符呢?例如
int x = 7;
int y = 7;
Integer a = new Integer(7);
Integer b = new Integer(7);
System.out.println(x == y);
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(a <= b);
Run Code Online (Sandbox Code Playgroud)
版画
true
false // Why you should use .equals
true
true // Seemed dangerous but it worked?
Run Code Online (Sandbox Code Playgroud)
是否可以使用除double equals以外的任何东西(So>,<,> =和<=是安全吗?),还是应该使用.compareTo()方法?