我们可以将字符作为Java中整数数组的索引传递吗

拉胡尔:

我是Java新手,正在练习一些程序。有人可以在第10行向我解释以下程序吗

public static void main(String[] args) {
        String str1 = "xxyz";
        String str2 = "yxzx";
        System.out.println("Original strings: " + str1 + "  " + str2);
        System.out.println(stringPermutation(str1, str2));
    }

    public static void stringPermutation(String str1, String str2) {
        int[] arr = new int[500];
        for (int i = 0; i < str1.length(); i++) {
     System.out.println(arr[(int) str1.charAt(i)] += 1); //line 10

        } 
}

它显示以下输出:

Original strings: xxyz  yxzx
1
2
1
1

我试图了解,怎么arr[(int) str1.charAt(i)]i.e, arr['x']可能。请帮助我理解这一点。

螨病:

当您初始化一个空整数数组时,每个项目的初始值为零,其中的每个索引arr将包含0

int[] arr = new int[500];
arr[0] = 0;
arr[1] = 0;
//...
arr[500] = 0;

x的ASCII值为120,y为121,z为122,因为该arr字段包含500个项目,则120、121和122在范围内。

在循环中,将每个元素加1。因此,在您str1 = "xxyz"遇到第一个x时,会将1加到索引中,arr[120]使它arr[120]成为1;当再次遇到x时,会将1加到使arr[120]变为2 的值上

arr[(int) 'x'] += 1 //=> arr[120] + 1 = (0 + 1) = 1
arr[(int) 'x'] += 1 //=> arr[120] + 1 = (1 + 1) = 2
arr[(int) 'y'] += 1 //=> arr[121] + 1 = (0 + 1) = 1
arr[(int) 'z'] += 1 //=> arr[122] + 1 = (0 + 1) = 1

arr['x']之所以可能,是因为在java char中,数据类型是单个16位整数,而int是32位有符号整数。

更新:

在程序的继续中,第二个循环在str2char索引处减去一个,如果str2str1的排列,则所有项目arr均应重置为0。

在str1上循环之后。数组中的值是

arr[0] = 0
//...
arr[120] = 2 //arr['x']
arr[121] = 1 //arr['y']
arr[122] = 1 //arr['z']
//...
arr[500] = 0

什么时候 str2 = "yxzx"

arr[(int) 'y'] -= 1 //=> arr[121] - 1 = (1 - 1) = 0
arr[(int) 'x'] -= 1 //=> arr[120] - 1 = (2 - 1) = 1
arr[(int) 'z'] -= 1 //=> arr[122] - 1 = (1 - 1) = 0
arr[(int) 'x'] -= 1 //=> arr[120] - 1 = (1 + 1) = 0

循环后,str2值将重置为0

arr[0] = 0
//...
arr[120] = 0 //arr['x']
arr[121] = 0 //arr['y']
arr[122] = 0 //arr['z']
//...
arr[500] = 0

因此,如果所有值均为零,则遍历所有数组,则str2是str1的排列。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们可以将函数作为参数传递吗

来自分类Dev

我们可以将数组映射为整数吗?

来自分类Java

我们可以将整数转换为字符吗

来自分类Dev

我们可以在Java中调整数组的大小吗?

来自分类Java

我们可以将重写的方法作为Java中的抽象方法吗?

来自分类Java

在java中,我们可以将超类Object传递给子类引用吗?

来自分类Dev

在TypeScript中,我们可以为函数数组创建可重用的接口吗?

来自分类Java

我们可以将字节数组转换为Java中的InputStream吗?

来自分类Dev

我们可以在C ++中向数组添加整数吗

来自分类Dev

我们可以在Codeigniter的单选按钮中传递数组值吗?

来自分类Dev

我们可以在oracle中删除本地索引吗?

来自分类Dev

我们可以将列表作为值添加到 redis 中的排序集吗?

来自分类Java

我可以将数组作为参数传递给Java中具有可变参数的方法吗?

来自分类Dev

我们可以在url参数中传递null吗?

来自分类Dev

我们可以在 printf 中传递指针吗?

来自分类Dev

我们可以在整数类型的双指针中分配二维整数数组的地址吗? 怎么可能?

来自分类Dev

我们可以在tcl 8.5中将选项传递给tcl source命令吗

来自分类Dev

我们可以将 excel 文件或 .csv 文件作为空手道功能文件中的表格输入传递吗

来自分类Dev

我们可以将 x_com 变量作为参数传递给 DAG 中的下一个任务吗?

来自分类Dev

我们可以在NEAR中返回`AccountID`数组吗?

来自分类Dev

我们可以将两个函数作为另一个函数的参数传递吗?

来自分类Dev

我们可以将const char *分配给cpp中的字符串吗?

来自分类Dev

我们如何在knex迁移中创建整数数组类型列?

来自分类Dev

我们可以从Java中的字符串声明数据类型吗

来自分类Dev

使用 charAt(i) 从字符串制作整数数组会在每个索引中给我 2 位数字吗?

来自分类Java

在Java中,我们可以将一个类分为多个文件吗?

来自分类Dev

将Python集成到Java中-我们可以直接调用.py文件吗?

来自分类Java

我们可以重载Java中的main方法吗?

来自分类Java

我们可以在Java中创建接口的实例吗?

Related 相关文章

  1. 1

    我们可以将函数作为参数传递吗

  2. 2

    我们可以将数组映射为整数吗?

  3. 3

    我们可以将整数转换为字符吗

  4. 4

    我们可以在Java中调整数组的大小吗?

  5. 5

    我们可以将重写的方法作为Java中的抽象方法吗?

  6. 6

    在java中,我们可以将超类Object传递给子类引用吗?

  7. 7

    在TypeScript中,我们可以为函数数组创建可重用的接口吗?

  8. 8

    我们可以将字节数组转换为Java中的InputStream吗?

  9. 9

    我们可以在C ++中向数组添加整数吗

  10. 10

    我们可以在Codeigniter的单选按钮中传递数组值吗?

  11. 11

    我们可以在oracle中删除本地索引吗?

  12. 12

    我们可以将列表作为值添加到 redis 中的排序集吗?

  13. 13

    我可以将数组作为参数传递给Java中具有可变参数的方法吗?

  14. 14

    我们可以在url参数中传递null吗?

  15. 15

    我们可以在 printf 中传递指针吗?

  16. 16

    我们可以在整数类型的双指针中分配二维整数数组的地址吗? 怎么可能?

  17. 17

    我们可以在tcl 8.5中将选项传递给tcl source命令吗

  18. 18

    我们可以将 excel 文件或 .csv 文件作为空手道功能文件中的表格输入传递吗

  19. 19

    我们可以将 x_com 变量作为参数传递给 DAG 中的下一个任务吗?

  20. 20

    我们可以在NEAR中返回`AccountID`数组吗?

  21. 21

    我们可以将两个函数作为另一个函数的参数传递吗?

  22. 22

    我们可以将const char *分配给cpp中的字符串吗?

  23. 23

    我们如何在knex迁移中创建整数数组类型列?

  24. 24

    我们可以从Java中的字符串声明数据类型吗

  25. 25

    使用 charAt(i) 从字符串制作整数数组会在每个索引中给我 2 位数字吗?

  26. 26

    在Java中,我们可以将一个类分为多个文件吗?

  27. 27

    将Python集成到Java中-我们可以直接调用.py文件吗?

  28. 28

    我们可以重载Java中的main方法吗?

  29. 29

    我们可以在Java中创建接口的实例吗?

热门标签

归档