我的代码遇到问题。我正在尝试使用aradylists的.add方法将String转换为char ArrayList。但是我收到以下错误
类型ArrayList中的方法add(int,String)不适用于参数(int,char)
有人可以告诉我代码出错的地方,还是指向正确的方向?
import java.util.ArrayList;
import java.util.Arrays;
public class Benford {
public static void main(String args[]){
//countDigits(123456);
nthDigitBack(12,359938);
}
public static int countDigits(double inNum){
double result = Math.log(inNum) / Math.log(10);
result = (int) (Math.ceil(result));
System.out.println(result);
return (int) result;
}
public static int nthDigitBack(int n, int num){
System.out.println(countDigits(num));
//convert num to string
String transferToArray = Integer.toString(num);
//create character array
ArrayList<String> charArray = new ArrayList<String>();
//convert string to Array
for(int i = 0; i < countDigits(num); i++){
charArray.add(i, transferToArray.charAt(i));
}
return 1;
}
}
答案 0 :(得分:0)
你有一个采用字符串的ArrayList:
bool RegisterContact(Contact contactInfo)
{
Contact entityExists = null;
if (string.IsNullOrEmpty(contactInfo.EmailAddress) &&
(string.IsNullOrEmpty(contactInfo.DisplayName)))
entityExists =
_dbContext.Contacts.FirstOrDefault(
p => p.FilesID.Equals(contactInfo.FilesID));
if (!string.IsNullOrEmpty(contactInfo.EmailAddress) && string.IsNullOrEmpty(contactInfo.DisplayName))
entityExists =
_dbContext.Contacts.FirstOrDefault(
p =>
p.FilesID.Equals(contactInfo.FilesID) &&
p.EmailAddress == contactInfo.EmailAddress);
if (string.IsNullOrEmpty(contactInfo.EmailAddress) && !string.IsNullOrEmpty(contactInfo.DisplayName))
entityExists =
_dbContext.Contacts.FirstOrDefault(
p =>
p.FilesID.Equals(contactInfo.FilesID) &&
p.DisplayName == contactInfo.DisplayName);
if (!string.IsNullOrEmpty(contactInfo.EmailAddress) &&
!string.IsNullOrEmpty(contactInfo.DisplayName))
entityExists =
_dbContext.Contacts.FirstOrDefault(
p =>
p.FilesID.Equals(contactInfo.FilesID) &&
p.EmailAddress == contactInfo.EmailAddress &&
p.DisplayName == contactInfo.DisplayName);
}
但是你把它称为charArray,然后你尝试添加chars。您应该将List放入Character of List(原始char的包装器)或更改add方法以添加String。
选项1:
public Instances removeMissingValues(Instances data) throws Exception {
ReplaceMissingValues replaceMissingValues = new ReplaceMissingValues();
replaceMissingValues.setInputFormat(data);
return Filter.useFilter(data, replaceMissingValues);
}
选项2:
ArrayList<String> charArray = new ArrayList<String>();
答案 1 :(得分:0)
中的方法nthDigitBack错误发生在
charArray.add(i,transferToArray.charAt(i));
当您尝试将Chracter数据类型添加到字符串数组时。您只能在charArray中添加String数据类型。
将charArray更改为
ArrayList<Character> charArray = new ArrayList<Character>();
答案 2 :(得分:0)
您可以尝试以下方式吗?
charArray.add(i, transferToArray.substring(i, i+1));