我有以下代码片段,在这段代码中我想根据String数组的长度将String数组转换为动态生成的char数组。我的方法/技术是可行的还是我必须选择其他数据类型...实际上我必须对单词的每个字符执行逻辑,这就是为什么我将String数组分解为char []数组....
private String[] function(String[] words) {
String[] names = words;
char[] CArray= null;
for (int i = 0; i < names.length ; i++){
CArray = names[i].toCharArray();
}
for (int i = 0; i < CArray.length ; i++){
System.out.print(CArray[i]);
}
return names;
}
Guys plz试图表明我希望char []数组的名称在序列quto中生成,基于String数组的长度意味着如果有4个单词在一个名字中有4个char []数组序列,如S0,S1,S2,S3或其他任何东西.. !!!!!
好的伙伴们,这就是我想要实现的目标
char [] S1或anyname = words [0] .toCharArray();
char [] S2或anyname = words [1] .toCharArray();
所以...取决于传递的字符串数组的数量,,,这样我留下char []数组S1,S2,S3来进行我的进一步操作..... plz plz现在弄明白了......! !希望我清楚地了解问题.. ??
答案 0 :(得分:0)
你想要的是将字符串数组中的每个字符放入char数组????。
如果是,您有几种方法可以做到这一点。
为避免使用数组列表(增加其dinamycally容量),您必须知道字符串数组的每个索引中的字符数量,遍历每个索引,将字符数量添加到您之前声明的变量中(让我们称之为sumChar),然后创建一个容量等于sumChar char []的char数组Carray = new chat [sumChar]。
然后做这样的事情 int indexPos = 0;
for (int i=0;i<names.length;i++)
{
for (int c=0;c<names[i];length;c++)
{
Carray[indexPos++]=names[i].charAt(c);
}
}
就是这样,我上面的代码没有测试它,所以任何问题都可以随意提问
答案 1 :(得分:0)
我认为这就是你要找的东西:
private static char[] stringArrayToCharArray (String[] words) {
int arrayLength = 0;
// Calculate the total size of the char array by adding the strings sizes
for (final String word : words)
arrayLength += word.length();
// Create the char array
char[] charArray = new char[arrayLength];
int arrayIndex = 0;
// Fill the array
for (final String word : words)
for (int i=0; i<word.length(); i++)
charArray[arrayIndex++] = word.charAt(i);
return charArray;
}
以下是如何使用它:
String[] strs = {"test", "other"};
char[] chars = stringArrayToCharArray(strs);
答案 2 :(得分:0)
我担心这甚至不是很接近..你执行了代码并看到了它的结果吗?
不要挑选,但这有点重要:Java中的变量名以小写字母开头,因此cArray而不是CArray。为读者带来了很多困惑(它是一个变量吗?它是一个类吗?等等。)
这条线的目的是什么?为什么不用单词?
String [] names = words;
以下代码导致CArray成为包含最后一个字的字符数组。除了最后一个单词之外的所有其他单词都将被丢弃。
for (int i = 0; i < names.length ; i++){
CArray = names[i].toCharArray();
也许你的意思是将第二个循环嵌入到第一个循环的主体中?
然后你返回names
,这与words
完全相同,那里没有字符数组。
也许您希望function
返回一组字符数组?
我不确定你是否真的想转换为字符数组数组,而不是使用StringBuffer或正则表达式。 Java中的大多数文本操作都是以这种方式完成的。
我建议在进入编码之前研究更多..
答案 3 :(得分:0)
这是一个程序,然后演示你的要求:
public class CharArray {
public CharArray() {
String[] words = { "First", "Second" };
for (String word : words) {
for (char character : word.toCharArray()) {
System.out.print(character + " ");
}
System.out.println();
}
}
public static void main(String[] args) {
new CharArray();
}
}
单词数组中出现的单词将逐一出现在构造函数中的character
变量中。在那里做任何你想做的事。
希望它有所帮助。