Java 如何在代码中间更改字符串类名?

Java 如何在代码中间更改字符串类名?,java,android,xml,eclipse,android-listview,Java,Android,Xml,Eclipse,Android Listview,我正在制作一个Android应用程序,它基本上是一个导游应用程序。我有它,用户可以点击主页上的城市名称,他们将显示该城市的列表。从那里,他们可以得到任何需要的信息。 下面是Java代码列表 public class Alantic extends ListActivity{ String classes[] = { "City history", "Fort Macon", "example2", "example3", "example4", "example5", "example6"};

我正在制作一个Android应用程序,它基本上是一个导游应用程序。我有它,用户可以点击主页上的城市名称,他们将显示该城市的列表。从那里,他们可以得到任何需要的信息。 下面是Java代码列表

public class Alantic extends ListActivity{
String classes[] = { "City history", "Fort Macon", "example2", "example3", "example4", "example5", "example6"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter<String>(Alantic.this, android.R.layout.simple_list_item_1, classes));
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);
    String abc = classes[position];
    try{
    Class ourClass = Class.forName("com.techreviewsandhelp.carteretcountyhistoryguide." + abc);
    Intent ourIntent = new Intent("Alantic.this, ourClass");
    startActivity(ourIntent);
    }catch (ClassNotFoundException e){
        e.printStackTrace();
    }
}
公共类活动{
字符串类[]={“城市历史”、“梅肯堡”、“示例2”、“示例3”、“示例4”、“示例5”、“示例6”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setListAdapter(新的ArrayAdapter(Alantic.this,android.R.layout.simple_list_item_1,classes));
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
//TODO自动生成的方法存根
super.onListItemClick(左、右、位置、id);
字符串abc=类[位置];
试一试{
Class-ourClass=Class.forName(“com.techreviewsandhelp.carteretcountyhistoryguide.”+abc);
意向ourIntent=新意向(“Alantic.this,ourClass”);
星触觉(ourIntent);
}catch(classnotfounde异常){
e、 printStackTrace();
}
}
}

我遇到的问题是字符串名。显然,任何人都可以看到类似“城市历史”的东西,知道他们会得到什么。但是,不能在XML名称中放置空格,也不能重用该名称。我试图弄清楚如何将它保存在用户可以看到城市历史之类的东西的地方,但软件将其更改为后端所需的内容


这可能吗。如果是,怎么做?

您可以尝试以下方法:

 public class Testing {
public static void main(String[] args) {
    String classes[] = { "City history", "example1", "example2",
            "example3", "example4", "example5", "example6" };
    String abc = classes[0].replaceAll(" ", "");
    System.out.println(abc);
}
}

如果是城市历史,只需将类命名为CityHistory.java

当我补充说,我得到了一个错误,然后是另一个。第一个错误是“string类型中的replaceAll(string,string)方法不适用于参数(string)”,这基本上在(“,”)中添加了abc。当它将abc放入时,新的错误显示“局部变量abc可能尚未初始化”。@user280655我尝试了我以前的代码,但工作正常。以确保我再次尝试并再次成功。请检查您的代码并解决错误。@user280655第一条错误消息使它看起来像是您在括号内的
replaceAll
调用中放入了一个参数,而不是两个参数。答案中的代码在括号内显示了两个字符串。你确定你打对了吗?是的,我不知道我需要两个都保留。所以基本上,我需要为每个字符串添加(“,”)。例如,“城市历史”,“海滩城市”(“example1”,“bla”)它不起作用。我得到的构造函数调用必须是构造函数中的第一个语句。这是通过做以下工作来实现的:(“城市历史”,“海滩城”),(“梅肯堡”,“梅肯堡”);有没有办法做一些if语句?比如,如果字符串是“城市历史”改为“海滩城市”,如果“梅肯堡”改为“梅肯堡”