为什么以下打印老板而不是低音?
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) 我有一个域类,它只是一个字符串列表(youtubeLinks).
保存这些链接时,我想删除视频ID并保存,而不是在UI端输入的整个URL.
这就是我正在尝试的(忽略正则表达式是有缺陷的)
youtubeLinks.each {
def youtubeRegex = /v=(.*)/
def matcher = ( it =~ youtubeRegex )
it = matcher[0][1]
}
Run Code Online (Sandbox Code Playgroud)
保存时,它会保存"it"的原始值.有没有办法更新此引用并正确保存?
谢谢.
我会快速解决这个问题.我有一个简单的课程
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)
正如本讨论所指出的那样,编译后两者都应该相同.
我的问题是,为什么每个循环都无法从项目数组初始化/构造对象?
好的,所以我想要迭代一个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'成为指针会很好.
所有评论都表示赞赏!即使你说我应该吮吸它并使用不同的结构.