小编Bri*_*ian的帖子

迭代键集与迭代条目集

一位同事今天发出了一个提示,指出后一段代码更有效率,因为它不需要像前者那样在每次迭代中在地图中进行查找(#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)

java

4
推荐指数
1
解决办法
2874
查看次数

使用相对路径查找并复制文件

在这个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

linux copy find

3
推荐指数
1
解决办法
5526
查看次数

在shell脚本中连接命令字符串

我正在维护一个现有的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作为参数?

bash shell scripting

2
推荐指数
1
解决办法
7994
查看次数

Content-Length 最大允许长度

我在 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位吗?我找不到答案!

http content-length ios

2
推荐指数
1
解决办法
1万
查看次数

删除以逗号分隔的字符串中的额外逗号

假设我有这个字符串

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)

java string

2
推荐指数
1
解决办法
1136
查看次数

SimpleDateFormat抛出ParseException,错误偏移为0

以下代码有什么问题?它抛出一个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)

java simpledateformat

2
推荐指数
1
解决办法
770
查看次数

strftime%F在Windows上不起作用

我试图在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++ linux windows cygwin visual-studio-2008

2
推荐指数
1
解决办法
3008
查看次数

防止列表框中出现重复条目

我的 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# listbox

0
推荐指数
1
解决办法
9689
查看次数

使用==或!=时循环卡住了

我正在用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库.

c button raspberry-pi

-2
推荐指数
1
解决办法
134
查看次数