Java中的数组和.substring

时间:2018-12-08 23:15:49

标签: java

我有一个包含几个元素String[] names = {"Jeremy", "Aude", "David"};的数组

我想使用方法.substring()来提取索引1和2,即元素Aude和David,然后我还要连接元素Jeremy。

这是我想要得到的结果:Aude, David, Jeremy

您有操作这些元素的想法吗?

这是我的代码

ArrayList<String> myList = new ArrayList<>();

        String[] names = {"Jeremy", "Aude", "David"};

        String x = "";

        for(int i = 0; i<names.length; i++){
            myList.add(names[i]);
            System.out.print(myList.get(i) + " ");
        }


        x = names.substring(1,2);

4 个答案:

答案 0 :(得分:1)

您可以按照描述的方法进行操作,首先创建一个长度与names相同的新数组(因为要保留所有名称,只需旋转它们即可)。接下来,将每个偏移量为names的名称复制到第二个数组。最后,将名字复制到第二个数组的最后一个元素(并打印)。喜欢,

String[] names = { "Jeremy", "Aude", "David" };
String[] names2 = new String[names.length];
System.arraycopy(names, 1, names2, 0, names.length - 1);
names2[names2.length - 1] = names[0];
System.out.println(Arrays.toString(names2));

输出(按要求)

[Aude, David, Jeremy]

答案 1 :(得分:0)

我不会使用.substring()来访问数组中的元素。您可以通过按索引获取它们在内存中的位置。

ArrayList<String> myList = new ArrayList<>();

    String[] names = {"Jeremy", "Aude", "David"};

    String x = "";

    for(int i = 0; i<names.length; i++){
        myList.add(names[i]);
        System.out.print(myList.get(i) + " ");
    }


    x = names[1] + ", " names[2] + ", " names[0];

.substring()用于获取字符串中的元素,例如

`String x = "jeremy;
 x = x.substring(0, 2);`

x现在等于“ jer”

我还建议使用StringBuilder,因为它是可变的

答案 2 :(得分:0)

  

提取索引1和2

names[1]names[2]

  

元素杰里米也

names[0]

  

串联...我想要得到的结果:Aude,David,Jeremy

String result = names[1] + ", " + names[2] + ", " + names[0];
  

想要使用.substring()方法

您不能,因为该方法不适用于数组操作。


代码

String[] names = {"Jeremy", "Aude", "David"};
String result = names[1] + ", " + names[2] + ", " + names[0];
System.out.println(result);

输出

Aude, David, Jeremy

答案 3 :(得分:0)

变量'String [] names'不是String的对象,而是包含对象类型String的通用容器类数组的对象。这意味着您尝试访问的方法由于是数组而无法使用。您将必须创建一个新函数,该函数接受2个参数并返回一个String。

public String subString(int index1,int index2)
{
     if(names.length < index1 || names.length < index2)
     {
          return names[index1] + ", " + names[index2];
     }
     return "Index's not in array range";
}