【发布时间】:2012-10-22 18:07:01
【问题描述】:
我有一个令人沮丧的问题,这很容易。 Java 中的数组似乎令人沮丧地不直观。
我有一个名为 title 的字符串数组,它有几个标题
这是数组的一部分
private String[] title = {
"Abundance",
"Anxiety",
"Bruxism",
"Discipline",
"Drug Addiction"
}
这部分看起来不错,因为代码可以编译并运行得很好 现在我想基于这个数组创建另一个数组。 新数组将成为静态文本,与该数组中的数据连接,然后是更多静态文本。
我定义了两个静态字符串
String urlbase = "http://www.somewhere.com/data/";
String imgSel = "/logo.png";
所以我添加了新数组的声明
String[] mStrings;
然后我创建一个基本的 for 循环来遍历并创建新数组的元素
for(int i=0;i<title.length;i++) {
mStrings[i] = urlbase + title[i].replaceAll("[^a-zA-Z]", "").toLowerCase() + imgSel;
}
循环获取数组值并去除非字母字符并将其变为小写 因此
毒瘾
变成
吸毒
我想以这样的方式结束
mStrings[0]="http://www.somewhere.com/data/abundance/logo.png"
mStrings[1]="http://www.somewhere.com/data/anxiety/logo.png"
mStrings[2]="http://www.somewhere.com/data/bruxism/logo.png"
mStrings[3]="http://www.somewhere.com/data/discipline/logo.png"
mStrings[4]="http://www.somewhere.com/data/drugaddiction/logo.png"
我尝试了几种不同的尝试来声明 mStrings,但都是不正确的 当我忽略它时,Eclipse 建议这样做
String[] mStrings;
现在这看起来应该相当简单和正确,但是当我在它之后输入任何内容时 我收到一条错误提示
Syntax error on token ";", { expected after this token
由于它与另一个数组是一对一的,所以我在声明中尝试过,但它也失败了
String[] mStrings[title.length];
只是给它一个数量
我认为错误出现在声明中的某个地方,但我似乎找不到任何明确说明的文档。
似乎它不仅希望声明,而且希望加载数组,这是我不想要的,但我也尝试用三个元素加载它,但它仍然无法正常工作
正如我所说,虽然我想在 for 循环中加载它
任何帮助将不胜感激。
我确实尝试设置数组大小但得到了同样的错误
这是确切的代码
也许在别处
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends Activity {
ListView list;
LazyAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list=(ListView)findViewById(R.id.list);
adapter=new LazyAdapter(this, mStrings);
list.setAdapter(adapter);
Button b=(Button)findViewById(R.id.button1);
b.setOnClickListener(listener);
}
@Override
public void onDestroy()
{
list.setAdapter(null);
super.onDestroy();
}
public OnClickListener listener=new OnClickListener(){
public void onClick(View arg0) {
adapter.imageLoader.clearCache();
adapter.notifyDataSetChanged();
}
};
private String[] title = {
"Abundance",
"Anxiety",
"Bruxism",
"Discipline",
"Drug Addiction"
}
String urlbase = "http://imobilize.s3.amazonaws.com/giovannilordi/data/";
String imgSel = "/logo.png";
String[] mStrings = new String[title.length];
此处显示错误
for(int i=0;i<title.length;i++) {
mStrings[i] = urlbase + title[i].replaceAll("[^a-zA-Z]", "").toLowerCase() + imgSel;
}
(来源:imobilizeit.com)
【问题讨论】:
-
我一直在尝试@Ram kiran 提到的建议,但我仍然看到 &^%$ 错误再次错误是----令牌“;”上的语法错误,{ 预期在此令牌之后----第二个错误标志说要添加另一个'}'来关闭类主体,这让我认为第一个字符串数组的语法有问题,标题是正确的吗?
-
尝试清理您的项目。这可能只是 Eclipse 搞砸了。有一次我花了 15-20 分钟寻找一个语法错误,结果发现是 Eclipse 误解了它。
-
我已经尝试清理它重新启动它我能想到的任何其他东西我真的很茫然......任何其他想法......任何人