class Brackets
def self.paired?(s)
stack = []
brackets = { '{' => '}', '[' => ']', '(' => ')' }
s.each_char do |char|
if brackets.key?(char)
stack.push(char)
elsif brackets.values.include?(char)
return false if brackets.key(char) != stack.pop
end
end
stack.empty?
end
end
Brackets.paired?("[ ] } ]") # => false
Brackets.paired?("[ ]") # => true
Brackets.paired?("[ ") # => false
Brackets.paired?("[ (] {}") # => false
Brackets.paired?("[ ( ) ") # => false
Brackets.paired?("[ ( text { ) } ]") # => false
Brackets.paired?("[ ( text ) {} ]") # => true
我正在使用相对布局,我有2个按钮,可以随机移动到3个不同的位置。如何在Java代码中执行此操作,上面的代码几乎没有任何作用,只是使我的按钮内的文本消失,但将它留在同一个地方。
public void changeposition (int button){
int whichPos = rand.nextInt(3) + 1;
if(button == 1){
switch(whichPos) {
case 1: dirup.setPadding(0, 0, 284, 128);
case 2: dirup.setPadding(0, 0, 156, 88);
case 3: dirup.setPadding(0, 0, 24, 128);
}
}
}
这就是现在用XML定义按钮的方式。
答案 0 :(得分:1)
如果您将填充大小设置为小部件的大小(在您的情况下为70dp * 70dp),则按钮没有足够的空间容纳文本。
更新您需要操作LayoutParams的视图边距。
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) dirup.getLayoutParams();
params.setMargins(left, top, right, bottom);
dirup.setLayoutParams(params);