我知道有些人已经问过关于副本的问题,我已经看过了所有这些答案,但似乎都没有帮助我/我仍然无法编译它。我的代码中有没有什么明显的遗漏?帮助(编程新手!)
我需要编写一个方法,它接受一个参数,一个字符串值的数组,并返回一个没有重复值的新数组,并且不需要对原始数组进行排序。例如
String [] abc = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String [] new = removeDuplicates (abc);
for (int i = 0; i < new.length; i++)
{
System.out.print (new[i] + " ");
}
System.out.println();输出应该是:A、C、B
下面是我的代码:
import java.util.*;
class Duplication
{
public static void main (String [] args)
{
String [] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String [] newList = removeDuplicates (values);
}
private static String removeDuplicates (String [] originalArray)
{
for (int i = 0; i < newList.length; i++)
{
System.out.print (newList[i] + " ");
}
System.out.println();
String noDuplicates = originalArray.length;
for (int d = 0; d < noDuplicates; d++)
{
for (int e = d + 1; e < noDuplicates; e++)
{
if(originalArray[d] == originalArray[e])
{
originalArray[e] = originalArray[noDuplicates-1];
noDuplicates--;
e--;
}
}
}
}
}六个错误:
Duplication.java:9: error: incompatible types
String [] newList = removeDuplicates (values);
^
required: String[]
found: String
Duplication.java:14: error: cannot find symbol
for (int i = 0; i < newList.length; i++)
^
symbol: variable newList
location: class Duplicates
Duplication.java:16: error: cannot find symbol
System.out.print (newList[i] + " ");
^
symbol: variable newList
location: class Duplicates
Duplication.java:21: error: incompatible types
String noDuplicates = originalArray.length;
^
required: String
found: int
Duplication.java:32: error: bad operand types for binary operator '-'
originalArray[e] = originalArray[noDuplicates-1];
^
first type: String
second type: int
Duplication.java:35: error: bad operand type String for unary operator '--'
noDuplicates--;
^发布于 2017-04-10 00:39:51
这在java中是无效的:
public static void main (String [] args)
String [] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String [] newList = removeDuplicates (values);您必须添加{ }来定义静态main方法的作用域:
public static void main (String [] args){
String[] values = {"A", "C", "C", "B", "A", "C", "B", "B", "A"};
String[] newList = removeDuplicates (values);
}发布于 2017-04-10 01:29:52
1)您的方法removeDuplicates ()返回一个字符串。在主代码块中,您需要一个字符串数组。
2)作用域变量newList在主块内。因此,此变量在removeDuplicates方法中不可见
3) "originalArray.length“返回"int",不是字符串。
发布于 2017-04-10 01:37:54
您应该阅读错误消息。
Duplication.java:9: error: incompatible types
String [] newList = removeDuplicates (values);此函数返回非String []的String
private static String removeDuplicates (String [] originalArray)您应该将它声明为
private static String [] removeDuplicates (String [] originalArray)您应该在函数的作用域内声明newList才能使用它,这会导致
Duplication.java:14: error: cannot find symbol
for (int i = 0; i < newList.length; i++)长度是整数,应按如下方式处理:
int noDuplicates = originalArray.length;仔细阅读编译错误,它们解决了所有问题。
https://stackoverflow.com/questions/43309193
复制相似问题