我想知道是否可以将字符的出现分配给变量,直到我点击一个空格字符.例如,如果我有字符串"17 23 4 54 6 343 4"如何将第一个数字17分配给变量,以及下一个后续数字.
例如这个:
groovy:000> Arrays.asList 1,2,3,4,5
===> [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
有效,因为不需要该值。
但是当返回值赋给变量时:
groovy:000> a = Arrays.asList 1,2,3,4,5
ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, groovysh_parse: 1: unexpected token: 1 @ line 1, column 19.
a = Arrays.asList 1,2,3,4,5
^
1 error
at java_lang_Runnable$run.call (Unknown Source)
Run Code Online (Sandbox Code Playgroud)
失败了。
要使其运行,您需要括号。
groovy:000> a = Arrays.asList( 1,2,3,4,5)
===> [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
这背后有设计原因吗?或者这只是它的实施方式?
当我尝试运行此代码时,我收到此错误..我不知道我哪里出错了..
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at numericalComputatio.fibo.main(fibo.java:30)
package numericalComputatio;
public class fibo {
static double c = -0.618;
// double c = [(1-sqrt(5))/2] = - 0.618
/**
* Computes the fibonacci series
* @param n
* @return
*/
private static double fibo(int n){
if (n == 0)
return 1;
else if (n == 1)
return c;
else
{
double result = fibo(n - 1) + fibo(n - 2);
return result;
}
}
public static void main(String[] args) { …Run Code Online (Sandbox Code Playgroud) + - * / % < > = ! & ^ | ? :
Run Code Online (Sandbox Code Playgroud)
我试过了:
[+-*/%<>=!&^|?:]
Run Code Online (Sandbox Code Playgroud)
但我认为其中一些需要被挖空.我怎么知道哪些?
我有这个要求,当用户按Tab键时我需要将第一个元素聚焦在扩展器内.
当前(默认行为)焦点转到扩展器,我试图通过在扩展器中创建焦点事件处理程序来聚焦扩展器的第一个元素,如下所示:
private void ExpanderGotFocus(object sender, RoutedEventArgs e)
{
var expander = (Expander) sender;
if (!expander.IsExpanded)
{
expander.IsExpanded = true;
this._someText.Focus();
}
}
Run Code Online (Sandbox Code Playgroud)
哪个不起作用.
我也尝试将焦点放在下一个元素上:
var tRequest = new TraversalRequest(FocusNavigationDirection.Next);
var keyboardFocus = Keyboard.FocusedElement as UIElement;
keyboardFocus.MoveFocus(tRequest);
Run Code Online (Sandbox Code Playgroud)
但只能第二次工作(当扩展器至少打开一次时)
我试图把它放在一个线程和其他一些疯狂的想法.
如何将焦点放在扩展器内的第一个元素上?(膨胀机第一次关闭)
我有这个正则表达式来确定该行是否包含两个下划线:
\s*_{2}(\w+)
Run Code Online (Sandbox Code Playgroud)
任何空格,两个下划线然后一个字.事实证明,我也需要知道没有下划线,所以我有:
\s*(\w+)
Run Code Online (Sandbox Code Playgroud)
可选空格后跟一个单词.然后我得到了第1组,这是我的话.到现在为止还挺好.
问题是当使用两个下划线时采取的操作,当没有使用下划线时几乎与代码相同(除了我举起一个标记)
if( s =~ uderscore ) {
takeGroup( 1 )
yada yada
flag = true
} else if( s =~ noUnderscore {
takeGroup( 1 )
yada yada
flag = false
}
Run Code Online (Sandbox Code Playgroud)
我认为必须有一个更好的方法,而不是重复整个正则表达式并使用和不使用测试.
ArrayList<String> myArr = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
然后添加一些东西
myArr.add("Hello");
myArr.add("Testing");
myArr.add("Testing 1 2 3 ");
Run Code Online (Sandbox Code Playgroud)
然后我尝试通过这样做将它转换为String数组:
String[] s = (String[])myArr.toArray();
Run Code Online (Sandbox Code Playgroud)
我将使用此数组最终填充listview...但是当它投射时会崩溃并抛出它
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.IRE.toolbox/org.IRE.toolbox.Mods}: java.lang.ClassCastException: [Ljava.lang.Object;
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2627)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.widget.TabHost.setCurrentTab(TabHost.java:323)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.view.View.performClick(View.java:2408)
02-16 22:31:14.835: ERROR/AndroidRuntime(21666): at android.view.View$PerformClick.run(View.java:8817) …Run Code Online (Sandbox Code Playgroud) 如何将返回的值转换 System.getProperty("line.separator");为其字符串表示形式.
例如,如果值是"\n" 我想要由字符组成的字符串: ['\' + 'n'],如果值为"\r\n"=> ['\','r','\','n']是否有意义?
我想到了一些非常微不足道的想法,我想知道不同的想法.
编辑
Doh !! ..经过一番思考(确实很少)我想出了明显的事情:
String lineSeparatorRepresentation
= System.getProperty("line.separator").equals("\n")?"\\n":"\\r\\n";
Run Code Online (Sandbox Code Playgroud) 为什么我需要(Map.Entry)在前面i.next();?为什么我不能拥有Map.Entry m = i.next();?
抱歉.这是一个HashMap.
我正在尝试创建一个方法,反过来应该调用Arrays.sort方法,我正在尝试这个方法本身是通用的.当我尝试创建一个具体的问题时Comparator,我总会得到一个例外:
Generics.java:15: cannot find symbol
symbol : method sort(java.lang.Comparable[],java.util.Comparator<T>)
location: class java.util.Arrays
Arrays.sort(array, c);
^
1 error
Run Code Online (Sandbox Code Playgroud)
我通过转换值来解决它,但我真的想知道如何正确编码它.
这是我的(相关)代码:
import java.util.*;
abstract class Generics<T1,T2> {
public abstract void run( T1 a , T2 b );
public static <T> void sort( Comparable[] array, final Generics<T,T> g ) {
Comparator<T> c = new Comparator<T>() {
public int compare(T o1, T o2) {
g.run(o1,o2);
return 1;
}
};
Arrays.sort(array,
/* how can I get rid of this cast? */
(Comparator<? super …Run Code Online (Sandbox Code Playgroud)