【问题标题】:using charAt() function assigning to the char array is throwing error使用分配给 char 数组的 charAt() 函数会引发错误
【发布时间】:2015-04-27 02:49:27
【问题描述】:

我正在尝试使用以下代码将字符串保存到字符数组中,我收到此错误:类型不匹配:无法从 char 转换为 char[]

下面是代码

public class ExCaluculator{
char[] swi=new char[10];
String San="hello world" ;
int samsu ;
public void excal(){

for(samsu=0;samsu>San.length();samsu++)
{
    swi=San.charAt(samsu);
}   
}
}

还请给我建议任何其他方法来做同样的事情

【问题讨论】:

  • 什么不清楚?您不能分配 charto 和 char[]
  • 您需要使用索引访问数组,例如swi[samsu] 或只使用String.toCharArray()

标签: java arrays string char charat


【解决方案1】:

你必须将值分配给数组的一个元素:

public class ExCaluculator{
char[] swi=new char[10];
String San="hello world" ;
int samsu ;
public void excal(){

for(samsu=0;samsu>2;samsu++)
{
    swi[samsu]=San.charAt(samsu);
}   
}
}

【讨论】:

  • 没有理由手动执行此操作。正如@Kayaman 所说,String.toCharArray() 应该是首选方式。
  • @SubOptimal 如果您还不了解数组和索引并试图弄清楚它,那么手动完成是一个很好的理由,就像 OP 一样。
【解决方案2】:

Array 必须使用 index 访问,并且您需要更改 conditionfor 语句。

for(samsu=0;samsu<San.length();samsu++)
{
    swi[samsu]=San.charAt(samsu);
}   

您还必须将array 的大小增加到11 (char[] swi = new char[11];) 以避免ArrayIndexOutOfBoundsException

或者你可以简单地使用

char[] xyz = san.toCharArray();

参考:Arrays

【讨论】:

    【解决方案3】:

    您不能将char 分配给char[],数组是基于下标的。使用类似

    swi[0] = San.charAt(samsu);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-17
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      相关资源
      最近更新 更多