一位同事今天发出了一个提示,指出后一段代码更有效率,因为它不需要像前者那样在每次迭代中在地图中进行查找(#1).
#2(后者)如何更有效率?我只是不明白#1和#2是如何不同的.
**#1 snippet**:
for (String key : map.keySet())
{
String value = map.get(key); // does lookup for every key
// do something with value
}
Run Code Online (Sandbox Code Playgroud)
**#2 snippet**:
for (Map.Entry<String, String> entry : map.entrySet())
{
String key = entry.getKey();
String value = entry.getValue();
}
Run Code Online (Sandbox Code Playgroud) 在这个Stackoverflow 问题中,它展示了如何复制文件,并且它将递归到子目录中来复制文件。如何复制文件并在副本中包含相对路径?
例如,
find /path/to/directory/or/just/dot -name '*somepartoffilename*' -exec cp {} /path/you/want/to/copy/to \;
因此,如果您有/path/to/directory/a/somepartoffilename.txt和/path/to/directory/b/somepartoffilename.txt,那么您最终只会在 中得到这些文件之一/path/you/want/to/copy/to。
我正在维护一个现有的shell脚本,它将命令分配给shell脚本中的变量,如:
MY_COMMAND="/bin/command -dosomething"
Run Code Online (Sandbox Code Playgroud)
然后通过执行以下操作,它将"参数"传递给$ MY_COMMAND:
MY_ARGUMENT="fubar"
$MY_COMMAND $MY_ARGUMENT
Run Code Online (Sandbox Code Playgroud)
这个想法$MY_COMMAND应该与$MY_ARGUMENT附加执行.
现在,我不是shell脚本的专家,但从我所知道的,$MY_COMMAND不$MY_ARGUMENT作为参数执行.但是,如果我这样做:
MY_ARGUMENT="itworks"
MY_COMMAND="/bin/command -dosomething $MY_ARGUMENT"
Run Code Online (Sandbox Code Playgroud)
它工作得很好.
它是否是有效的语法调用,$MY_COMMAND $MY_ARGUMENT因此它在shell脚本中执行shell命令MY_ARGUMENT作为参数?
我在 ObjectiveC 中编程。我猜所有 oC 程序员都在使用相当标准的代码来发布:
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
Run Code Online (Sandbox Code Playgroud)
目前我收到警告说 NSUInteger 不应用作格式参数。该警告建议进行类型转换(unsigned long)。并用 %lu 替换 %d。这听起来很合乎逻辑。
在 HTTP 定义中,我找不到 Content-Length 实际上有多长。只是相当模糊的八位字节。是8位吗?我找不到答案!
假设我有这个字符串
Result="INDIA,,USA,SA,NA,,PAK";
Run Code Online (Sandbox Code Playgroud)
从这个结果字符串如何我删除,(cComma)符号如果我有多个逗号我需要用sigle逗号替换.我怎么能这样做?
预期结果:
"INDIA,USA,SA,NA,PAK";
Run Code Online (Sandbox Code Playgroud) 以下代码有什么问题?它抛出一个ParseException,错误偏移量为0.
final DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");
df.parse("Thu Jan 23 14:24:47 2014");
Run Code Online (Sandbox Code Playgroud) 我试图在Windows上编译这个简单的例子.当我使用时%F,这是较长形式的快捷方式%Y-%m-%d,进程中止而没有错误消息.在Linux上,它运行正常,就像在ideone.com上显示的这个实例.有任何想法吗?
#include <stdio.h>
#include <time.h>
int main ()
{
time_t rawtime;
struct tm * timeinfo;
char buffer [80];
time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (buffer,80,"Now it's %F.",timeinfo);
puts (buffer);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我的 C# 代码遇到问题..
我想用这段代码做的是,当我从文本框中输入具有相同符号(相同名称)的内容时,它显示我无法将其添加到列表框中两次或多次。所以我编写了这段代码:
void Btn_addClick(object sender, EventArgs e)
{
string thelist = listBox1.Text;
string text = textBox1.Text;
if(text == thelist)
{
MessageBox.Show("This name already exists!");
}
else
{
listBox1.Items.Add(textBox1.Text);
textBox1.Text = "";
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是,只有当我从列表中选择名称并从文本框中进行比较时,它才会显示消息框。如果我不选择任何内容或其他单词,它会添加相同的单词而不告诉它已经存在。
我正在用C编写我的rapsberry pi上的gpio引脚.不会让我陷入困境.当我使用==或!=无关紧要时,循环就会卡住.这是因为当程序进入循环时它不会更新while循环使用的变量状态吗?
for(i=0;i<200;i++)
{
uint8_t valu = bcm2835_gpio_lev(SIG);
while(valu == 0)
{
uint8_t valu = bcm2835_gpio_lev(SIG);
data[i] = 0;
dan = dan + 1;
delay(0.001);
}
timeout = 0;
while(val == 1 && timeout < 70)
{
uint8_t val = bcm2835_gpio_lev(SIG);
data[i] = data[i] + 1;
dat = dat + 1;
timeout = timeout + 1;
delay(0.001);
}
delay(0.001);
}
Run Code Online (Sandbox Code Playgroud)
bcm2835指令来自覆盖范围pi使用的broadcom IC的c库.