public static String doCensor(String toCensor)
{
Object[] aobj;
int l = (aobj = toCensor.toCharArray()).length; //THIS LINE OF CODE IS THE PROBLEM
我想将它转换为对象的原因是我可以在以后转换为特定字符或字符串。有没有更简单的方法呢?
投射示例:
char c = (char) aobj[j];
String word = (String) aobj[k];
答案 0 :(得分:1)
Object
的{{1}}表示形式为char
。您无法将Character
投射到Character
。从String
获取String
的最简单方法是使用空char
:String
连接它。或者,由于您开始使用String s = ch + "";
,因此可以使用String#substring
创建1 String
的子字符串。
答案 1 :(得分:1)
执行此操作的正确方法是从char[]
获取toCharArray
,然后如果需要String
,请使用Character.toString(char)
。您无法将char
投射到String
。
答案 2 :(得分:1)
您根本不需要将String转换为数组。您可以直接从String中提取字符:
char c=toCensor.charAt(j);
答案 3 :(得分:1)
String toCensor = "dog";
char characters[] = new char[toCensor.length()];
for(int i = 0; i < toCensor.length(); i++) {
characters[i] = toCensor.charAt(i);
}
for(int i = 0; i < characters.length; i++) {
System.out.print(characters[i] + " ");
}
这会将String toCensor拆分为字符并将它们存储到一个字符数组中。然后输出d o g
。
我不确定你的问题但是char是一个原始类型而String是一个Object。我几乎是积极的,你不能把char转化为对象。
这就是原始类型int可以是Integer但Integer不能是int的原因,有点像square是矩形但矩形不是正方形。
int也没有任何方法,但Object类型为Integer。
例如Integer.toString(5)
或String.format("")
我希望这很有帮助。