在Java中重复字符串到Array中

时间:2014-02-24 17:41:59

标签: java

我需要将字符串复制到字符数组中,这是数组中最多的次数。在这种情况下,OPERATIVO将在char数组中输入3次,而数组的其余部分可以是任何字符。我可以做什么?

public void copyToArray( char [] arrayCharacters ){
    String var = new String("OPERATIVO");

    for(int i=0 ; i < 30 ; i++){
        ...
    }
}

5 个答案:

答案 0 :(得分:2)

不太确定你想要什么,但我会试一试:

编辑:试试这个:

public static void copearCaracteres(char[] arrayOriginal )
{
    String cadena = new String("OPERATIVO");
    int div = arrayOriginal.length / cadena.length();
    int j = div * cadena.length();

    for(int i=0 ; i < arrayOriginal.length; i++)
    {
        if(i == j) return;
        arrayOriginal[i] = cadena.charAt(i % cadena.length());
    }
}

答案 1 :(得分:1)

arrayOriginal.length / cadena.length()

将为您提供复制数组中String的最大次数。

在您的情况下,30/8 => 3

答案 2 :(得分:1)

    String cadena = new String("OPERATIVO");
    char[] cad = new char[30];
    int length = cadena.length();
    int count = 1;

    for(int i=0,j=0; i < 30 && j <= length ; i++ ){
        if(j==length)
        {
            j = 0;
            count++;
        }
        if(count > 3)
        {
            break;
        }
        cad[i] = cadena.charAt(j);
        j++;
    }

输出:OPERATIVOOPERATIVOOPERATIVO

答案 3 :(得分:0)

我不知道我是否正确理解了这个问题,但是如果你想将String复制到character array,那么你可以这样做:

public void copy(char[] arr) {
    String string = "Some String";
    if (arr.length < string.length())
        // error
    arr = string.toCharArray();
}

答案 4 :(得分:0)

您可以使用java.lang.System.arraycopy()

String srcString = "OPERATIVO";
char[] srcArray = srcString.toCharArray();
int maxLength = 30;
char[] destArray = new char[maxLength];
int pos = 0;
while(pos < maxLength) {
  java.lang.System.arraycopy(srcArray, 
                             0, 
                             destArray, 
                             pos, 
                             Math.min(srcArray.length, maxLength - pos));
  pos += srcArray.length;
}
String string = new String(destArray);
System.out.println(string);