我不知道为什么会这样.我试图通过commons-exec捕获进程的输出,然后我继续挂起.我已经提供了一个示例程序来演示以下这种行为.
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.ExecuteException;
import org.apache.commons.exec.PumpStreamHandler;
public class test {
public static void main(String[] args) {
String command = "java";
PipedOutputStream output = new PipedOutputStream();
PumpStreamHandler psh = new PumpStreamHandler(output);
CommandLine cl = CommandLine.parse(command);
DefaultExecutor exec = new DefaultExecutor();
DataInputStream is = null;
try {
is = new DataInputStream(new PipedInputStream(output));
exec.setStreamHandler(psh);
exec.execute(cl);
} catch (ExecuteException ex) {
} catch (IOException ex) {
}
System.out.println("huh?");
}
}
Run Code Online (Sandbox Code Playgroud) 此代码中显示的图像正在泄漏,但我无法弄清楚如何.我有一个显示要显示的图像的tableview.每次用户选择图像时,都应删除旧图像,下载新图像,然后将其添加到滚动视图.但旧的形象没有被释放,我无法弄清楚为什么......
-(void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[imageView removeFromSuperview];
self.imageView = nil;
NSUInteger row = [indexPath row];
NSString *tempC = [[NSString alloc]initWithFormat:@"http://www.website.com/%@_0001.jpg",[pdfNamesFinalArray objectAtIndex:row] ];
chartFileName = tempC;
pdfName = [pdfNamesFinalArray objectAtIndex:row];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *tempString = [[[NSString alloc]initWithFormat:@"%@/%@.jpg",docsPath,pdfName]autorelease];
NSData *data = [NSData dataWithContentsOfFile:tempString];
if (data != NULL){
self.imageView = nil;
[imageView removeFromSuperview];
self.imageView = nil;
UIImageView *tempImage = [[[UIImageView alloc]initWithImage:[UIImage imageWithData:data]]autorelease];
self.imageView = tempImage;
[data release];
scrollView.contentSize = CGSizeMake(imageView.frame.size.width …Run Code Online (Sandbox Code Playgroud) 我正在用Java做一些事情,要求输入与模式^ [1-5] $匹配.我应该有一个while循环遍历每行输入,根据模式检查它,如果没有,则输出错误消息.
Sudo代码:
while (regex_match(/^[^1-5]$/,inputLine)) {
print ("Please enter a number between 1 and 5! ");
getNextInputLine();
}
Run Code Online (Sandbox Code Playgroud)
我可以使用java.util.Scanner.hasMatch("^[^1-5]$"),但这只会匹配一个令牌,而不是整行.关于如何使hasMatch与整条线匹配的任何想法?(将分隔符设置为"\n"或"\ 0"不起作用.)
编辑:如果这不可能,还有其他方法吗?
由Android的WebView呈现的动画GIF图像似乎没有动画效果.有没有人想出如何使它们工作?我正在用2.1-u1测试N1.没有可用的网络设置似乎适用.
下面的代码用于在用户单击textarea字段时启用提交按钮.它有效,但我也试图让它只有在字段中至少有一个字符才能启用它.我试着把它包装成:
if ($(this).val().length > 1)
{
}
Run Code Online (Sandbox Code Playgroud)
但是,这似乎没有用......任何想法?
$("#fbss").focus(function () {
$(this).select();
if ($(this).val() == "Default text") {
$(this).val("");
$("input[id=fbss-submit]").removeClass();
$("input[id=fbss-submit]").attr('disabled', false);
$("input[id= fbss-submit]").attr('class', '.enableSubmit');
if ($('.charsRemaining')) {
$('.charsRemaining').remove();
$("textarea[id=fbss]").maxlength({
maxCharacters: 190,
status: true,
statusClass: 'charsRemaining',
statusText: 'characters left',
notificationClass: 'notification',
showAlert: false,
alertText: 'You have exceeded the maximum amount of characters',
slider: false
});
}
}
});
Run Code Online (Sandbox Code Playgroud) 根据PHP文档,可以使用以下限制初始化类中的属性:
"这个声明可能包括一个初始化,但是这个初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且不能依赖于运行时信息才能被评估."
我正在尝试初始化一个数组并遇到一些问题.虽然这很好:
public $var = array(
1 => 4,
2 => 5,
);
Run Code Online (Sandbox Code Playgroud)
这会产生语法错误:
public $var = array(
1 => 4,
2 => (4+1),
);
Run Code Online (Sandbox Code Playgroud)
即使这不被接受:
public $var = 4+1;
Run Code Online (Sandbox Code Playgroud)
这表明它不是array()语言结构的限制.
现在,我最后一次检查时,"4 + 1"等同于一个恒定值,不仅应该被接受,而且实际上应该被优化掉.无论如何,它肯定能够在编译时进行评估.
那么这里发生了什么?限制是否真的沿着"根本不能是任何计算表达式",而不是任何"能够在编译时评估"的表达式?在doc的语言中使用"evaluate"表明允许进行简单的计算,但是......
如果这是PHP中的错误,是否有人有错误ID?我试图找到一个,但没有任何运气.
最近我发现自己编写了许多方法,我只能想到调用脚手架.这是一个例子:
public static void printArray (String[] array, boolean bug)
{
for (int i = 0; i<array.lenght; i++)
{
if (bug) System.out.print (i) ; //this line is what i'm calling the debugging scaffolding i guess.
System.out.println(array[i]) ;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种方法中,如果我将bug设置为true,无论从某种用户输入调用它,我都会得到特殊的调试文本,让我知道打印的字符串是什么索引,以防万一我需要知道为了我的调试(假装事态存在,它的帮助).
我的所有问题或多或少都归结为这个问题:这是一个好主意吗?但有点客观性:
这是测试我的方法并调试它们的有效方法吗?我的意思是在效率方面有效,而不是弄乱我的代码.
if
(bug) stuff ;在我的方法开始工作之后,将代码留在原地是否可以接受?(如果需要"可接受性"的定义来使这个问题成为目标,那么使用"不是一个关于编程争议的问题,例如if(boolean)
在它后面只用一行省略括号,尽管如果你有更好的东西继续使用你的定义我不介意)
是否有更有效的方法来完成调试比我正在做的更容易?
你知道我想要的任何东西,但我已经忘记了(尽可能多的信息被理解).
当我尝试声明链接列表数组时,我收到了编译错误消息"无法在变量声明中指定数组大小(尝试使用'new'表达式初始化)".
public LinkedList<LevelNode>[2] ExistingXMLList;
Run Code Online (Sandbox Code Playgroud)
另外,如果我想创建一个小数组的字符串,是不是以下正确的方法?
string [2] inputdata;
Run Code Online (Sandbox Code Playgroud) from threading import Timer
def hello():
print "hello, world"
t = Timer(30.0, hello)
t.start()
Run Code Online (Sandbox Code Playgroud)
此代码仅触发计时器一次.
如何让计时器永远运行?
谢谢,
更新
这是正确的 :
import time,sys
def hello():
while True:
print "Hello, Word!"
sys.stdout.flush()
time.sleep(2.0)
hello()
Run Code Online (Sandbox Code Playgroud)
还有这个:
from threading import Timer
def hello():
print "hello, world"
sys.stdout.flush()
t = Timer(2.0, hello)
t.start()
t = Timer(2.0, hello)
t.start()
Run Code Online (Sandbox Code Playgroud) java ×3
android ×1
animated-gif ×1
arrays ×1
c ×1
c# ×1
c++ ×1
class ×1
coding-style ×1
debugging ×1
input ×1
iphone ×1
jquery ×1
line ×1
linked-list ×1
logging ×1
memory-leaks ×1
objective-c ×1
php ×1
properties ×1
python ×1
regex ×1
syntax ×1
timer ×1
uiimageview ×1
windows ×1