相关疑难解决方法(0)

为什么foreach语句不会改变元素值?

为什么以下打印老板而不是低音?

String boss = "boss";
char[] array = boss.toCharArray();

for(char c : array)
{
 if (c== 'o')
     c = 'a'; 
}
System.out.println(new String(array)); //How come this does NOT print out bass?It prints boss.
Run Code Online (Sandbox Code Playgroud)

java foreach

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

在Groovy闭包内更新"it"

我有一个域类,它只是一个字符串列表(youtubeLinks).

保存这些链接时,我想删除视频ID并保存,而不是在UI端输入的整个URL.

这就是我正在尝试的(忽略正则表达式是有缺陷的)

youtubeLinks.each {
 def youtubeRegex = /v=(.*)/
 def matcher = ( it =~ youtubeRegex )
 it = matcher[0][1]
}
Run Code Online (Sandbox Code Playgroud)

保存时,它会保存"it"的原始值.有没有办法更新此引用并正确保存?

谢谢.

grails groovy closures

10
推荐指数
1
解决办法
6614
查看次数

对于每个循环都无法初始化数组中的对象

我会快速解决这个问题.我有一个简单的课程

class Vector{
    float x, y;
}
Run Code Online (Sandbox Code Playgroud)

另一个类有这些对象的数组作为其成员

Vector[] buffer;
Run Code Online (Sandbox Code Playgroud)

我像这样初始化它:

buffer = new Vector[8];
for(Vector v: buffer)
    v = new Vector();
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在这个数组中访问这个对象的成员时,我直接得到一个NullPointerException到我的堆栈跟踪.也就是说,尚未构造数组的对象.另一方面,这个更传统的代码非常完美:

buffer = new Vector[8];
for(int i = 0; i<8; i++)
    buffer[i] = new Vector;
Run Code Online (Sandbox Code Playgroud)

正如讨论所指出的那样,编译后两者都应该相同.

我的问题是,为什么每个循环都无法从项目数组初始化/构造对象?

java syntax for-loop

8
推荐指数
2
解决办法
2552
查看次数

For-Each和Java中的指针

好的,所以我想要迭代一个ArrayList并删除一个specefic元素.但是,我在使用For-Each之类的结构时遇到了一些麻烦.当我运行以下代码时:

ArrayList<String> arr = new ArrayList<String>();
//... fill with some values (doesn't really matter)

for(String t : arr)
{
  t = " some other value "; //hoping this would change the actual array
}

for(String t : arr)
{
  System.out.println(t); //however, I still get the same array here
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何使't'成为'arr'的指针,以便我能够在for-each循环中更改值?我知道我可以使用不同的结构循环遍历ArrayList,但是这个看起来非常干净和可读,能够使't'成为指针会很好.

所有评论都表示赞赏!即使你说我应该吮吸它并使用不同的结构.

java foreach pointers arraylist

7
推荐指数
2
解决办法
4062
查看次数

标签 统计

java ×3

foreach ×2

arraylist ×1

closures ×1

for-loop ×1

grails ×1

groovy ×1

pointers ×1

syntax ×1