【问题标题】:Change Value in Array Java [duplicate]更改数组Java中的值[重复]
【发布时间】:2016-03-13 22:41:42
【问题描述】:

用户输入一个 10 位的数字,例如 1234569775。可能有一个数字的值为 X,这意味着它等于数字 10 所以我写了我的代码

    Scanner in=new Scanner(System.in);
    String a=in.next();
    String arr[]=new String[10];
    for (int i=0;i<arr.length;i++)
    {
        arr[i]=String.valueOf(a.charAt(i));
    }
    for (int i=0;i<arr.length;i++)
    {
        if (arr[i]=="X")
        {
            arr[i]="10";
        }
    }
    System.out.println(Arrays.deepToString(arr));
}

但它的 X 值没有改变,我尝试创建一个新数组并且也没有做任何改变
最后一件事我想将这个字符串数组中的所有值更改为整数,这样我就可以对它们进行任何数学运算 所以我想要

  1. 将 X 的值更改为 10
  2. 将数组值更改为整数

我如何在 Java 中做到这一点?

【问题讨论】:

  • 它也不会改变 x 的值我现在试试
  • 好吧,把数组改成整数怎么样
  • 对不起,我真的不知道这一点,我只从 2 天开始 java,我不知道这一点
  • 这是非常挑剔的 Amr,但您可以早点学习,然后再晚点学习。在 Java 中,我们定义像 String[] arrayName 这样的数组,而不是您的做法 String arrayName[]。他们做同样的事情,但java约定是第一种方式。一开始我差点错过了你的数组。根据您的编码经验,这可能是一个很难改掉的习惯,但这里有人迟早会向您提及。
  • 感谢您的建议,欢迎您:D

标签: java arrays type-conversion


【解决方案1】:

这就是您可以将String[] 转换为int[] 的方法。

String[] arr = {"1","2"};
int[] intArray = new int[arr.length];
for (int i=0; i<arr.length; i++){
    intArray[i] = Integer.parseInt(arr[i]);
}

您基本上循环遍历String[] 并使用Integer.parseInt 解析每个String

或者,如果您使用的是 Java 8:

String[] arr = {"1","2"};
int[] intArray = Arrays.stream(arr).mapToInt(i -> Integer.parseInt(i)).toArray();

【讨论】:

    【解决方案2】:

    在java中不能使用“==”比较字符串

    试试:

    if (firstString.equals(secondString){
    //code...
    }
    

    我知道这很令人困惑,因为在许多其他编程语言中,双 = 可以比较字符串,但在 Java 中这是不可能的。

    编辑:比较忽略大小写的字符串,使用

    string1.equalsIgnoreCase(string2)
    

    这也是可能的:

    if(string.equals("X"))
    

    所以在你的情况下,使用

    if(arr[i].equals("10")
    

    【讨论】:

    • 好的,我想将数组值更改为整数,谢谢
    • 使用 Integer.parseInt(string_or_array_value) 将字符串变成 int
    • 也请您将问题标记为已回答,以便其他有相同问题的人可以找到它。
    • 好的,我会做的,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2020-09-01
    • 2021-04-28
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多