打印一个没有任何0的字符串

时间:2017-04-21 22:32:35

标签: java error-handling

所以,我有这个项目,他们告诉我我必须得到一个积极的int并将其更改为一个String乐队我必须使用它来处理数字由didgit。

private static String intToString(int n) {
    if (n < 0)
        throw new IllegalArgumentException("o nº recebido tem de ser 
positivo: " + n);

    // else if((x != (int)x)){
    // throw new IllegalArgumentException("")
    // }

    else {
        String text = "";
        int array[] = new int[(int) (Math.log10(n) + 1)];
        for (int x = 0; x < array.length; x++) {
            array[x] = n % 10;
            n = n / 10;
        }
        for (int x = array.length - 1; x >= 0; x--) {
            text = text + String.valueOf(array[x]);

        }
        System.out.println(text);
    }
    return null;
}

在我完成之后,下一部分是删除该String上的所有0,我这样做了:

private static int removeZeros(int n) {
    String text = intToString(n);
    for (int l = 0; l < text.length(); l++) {
        if (text[l] != "0") {
            System.out.println("Sick");;
        }
    }
    return 0;
}

但它给了我这个错误:        表达式的类型必须是数组类型,但它已解析为String。

我该怎么做才能解决这个错误?

3 个答案:

答案 0 :(得分:1)

String不是一个数组,当然它是在一个数组下实现的。

对于你可以做的字符串

text.charAt(l)

而不是

text[l]

然后比较'0'(字符)而不是“0”(这是一个字符串)。

答案 1 :(得分:0)

字符串不能通过[]索引它不是数组,而是应该将其转换为char数组

你的removeZeros应该是:

private static int removeZeros(int n) {
    String text = intToString(n);
    char[] ch=text .toCharArray();  
    for (int l = 0; l < ch.length; l++) {
        if (ch[l] != '0') {
            System.out.println("Sick");;
        }
    }
    return 0;
}

答案 2 :(得分:0)

假设您的 intToString 功能正确,请执行此操作

private static int removeZeros(int n) {
char[] text = intToString(n).toCharArray();
for (int l = 0; l < text.length(); l++) {
    if (text[l] != "0") {
        System.out.println("Sick");;
    }
}
return 0;
}

你需要Character Array(char [])数据类型来遍历String.Only然后你可以在循环中做text [i]。

相关问题