首页 文章

java中的数组和.substring

提问于
浏览
0

我有一个包含几个元素的数组 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);

5 回答

  • 1

    您可以像描述的那样完成它,首先创建一个与 names 长度相同的新数组(因为您想保留所有名称,只需旋转它们) . 接下来,复制从 names 到第二个数组的偏移量为1的每个名称 . 最后,将第一个名称复制到第二个数组中的最后一个元素(并打印出来) . 喜欢,

    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]
    
  • 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";
    }
    
  • 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中的元素,例如

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

    x现在等于“jer”

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

  • 0

    您也可以使用 public static void rotate(List<?> list, int distance) 将旋转列表

    按指定距离旋转指定列表中的元素 . 在调用此方法之后,索引i处的元素将是先前在index(i - distance)mod list.size()的元素,对于0和list.size() - 1之间的所有i值,包括0 . (此方法对列表的大小没有影响 . )

    String[] names = {"Jeremy", "Aude", "David"};
        List<String> result = Arrays.asList(names);
        Collections.rotate(result, -1);
        System.out.println(result); //[Aude, David, Jeremy]
    
  • 0

    提取索引1和2

    names[1]names[2]

    元素杰里米也

    names[0]

    连接...我想得到的结果:奥德,大卫,杰里米

    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

相关问题