Java 如何将字符串添加到数组中?
我一直在想如何将字符串添加到数组中。 我有一个代表列表的类,我想通过调用Java 如何将字符串添加到数组中?,java,arrays,string,methods,Java,Arrays,String,Methods,我一直在想如何将字符串添加到数组中。 我有一个代表列表的类,我想通过调用addTo将“cup”添加到列表中。 我尝试过这个方法,但它会填充整个数组,然后当再次调用该方法时,它会覆盖整个数组: private String[] option; private int position; public Menu() { option = new String[0]; position = 0; } public void addTo(java.lang.String optio
addTo
将“cup”添加到列表中。
我尝试过这个方法,但它会填充整个数组,然后当再次调用该方法时,它会覆盖整个数组:
private String[] option;
private int position;
public Menu()
{
option = new String[0];
position = 0;
}
public void addTo(java.lang.String option)
{
option = new String[20];
++position;
option[position] = option;
}
希望这样更好。这行
option = new String[20];
正在清除您的列表
例如,您应该仅在构造函数中初始化列表。
您的菜单类可以是:
public class Menu{
private final int LIMIT = 20;
private String[] option;
private int position;
public Menu()
{
option = new String[LIMIT];
position = 0;
}
public void addTo(String item)
{
if(position == LIMIT)
{
// We do not want a IndexOutOfBoundsException here
return;
}
option[position++] = item;
}
public void printList(){
for(int i = 0; i< LIMIT; i++)
{
System.out.println( i + ": " + option[i] );
}
}
public static void main(String[] args)
{
Menu m = new Menu();
m.addTo("book");
m.addTo("cup");
m.addTo("test");
m.printList();
}
}
公共类菜单{
私人最终整数限额=20;
私有字符串[]选项;
私人职位;
公共菜单()
{
选项=新字符串[限制];
位置=0;
}
公共void addTo(字符串项)
{
如果(位置==限制)
{
//我们不希望这里出现IndexOutOfBoundsException
返回;
}
选项[position++]=项目;
}
公共作废打印列表(){
对于(int i=0;i
测试和工作
致以最良好的祝愿
米格尔你目前的想法是什么
option=newstring[20]
does?@immibis它将选项数组的元素设置为20。它创建一个新数组(new String[20]
,它创建一个数组并返回对它的引用),然后将引用分配给option
(option=
)@midknight以及“旧”会发生什么情况option
array?@Tom我之前声明过它,但没有初始化它的私有字符串[]选项;当然,我会编辑帖子并给出helper类的完整代码。那么LIMIT
应该是什么?数组大小?@midnightLIMIT
不应为20,如果要向数组中添加20个元素,则应为19。这就是为什么我问他,因为限制检查不是“好的”。好的,但代码仍然替换数组中的所有内容。我希望在调用方法时只添加一次,例如addTo(“cup”);增补(“书”);然后它将打印cup bookLIMIT,在本例中,它是一个常数,您应该根据列表的大小创建它。初始化类构造函数中的选项[]。方法addTo()只应将字符串添加到选项[]数组中。使用option=new String[20]时,将丢失对旧数组的引用。