使用.add将字符串转换为arrayList

时间:2016-01-26 17:42:21

标签: string arraylist char

我的代码遇到问题。我正在尝试使用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;
    }

}

3 个答案:

答案 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));