我需要将字符串复制到字符数组中,这是数组中最多的次数。在这种情况下,OPERATIVO将在char数组中输入3次,而数组的其余部分可以是任何字符。我可以做什么?
public void copyToArray( char [] arrayCharacters ){
String var = new String("OPERATIVO");
for(int i=0 ; i < 30 ; i++){
...
}
}
答案 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);