所以,我有这个项目,他们告诉我我必须得到一个积极的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。
我该怎么做才能解决这个错误?
答案 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]。