我正在尝试使用ascii代码创建tolowercase方法。我找到了这段代码:
public void toLowerCase(){
for (int i = 0; i<arraySize; i++){
char aChar = myarray[i].charAt(0);
if (65 <= aChar && aChar<=90){
aChar = (char)( (aChar + 32) );
}
System.out.print(aChar);
}
}
但myarray是通用数组,所以charAt给出错误
对于类型T
,方法charAt(int)未定义
我该如何解决这个问题?我尝试创建一个新的String数组并将通用数组转换为新数组,但它不起作用。如何将通用数组转换为字符串数组或如何使用通用数组中的ascii代码创建tolowercase方法?
答案 0 :(得分:2)
除非它是具有charAt
方法的类或接口,否则您无需调用。您可以做的是制作通用类型T extends CharSequence
,并且您将能够使用charAt
,因为CharSequence
界面具有此方法。
实现CharSequence的类包括String,StringBuffer和StringBuilder。
如何将通用数组转换为字符串数组,或者如何在泛型数组中使用ascii代码创建tolowercase方法?
你可以这样做
T[] myarray = {"to", "be", "or", "not", "TO", "be"};
String[] strs = (String[]) myarray;
虽然做起来要简单得多
String[] myarray = {"to", "be", "or", "not", "TO", "be"};
答案 1 :(得分:0)
这应该是你的工作:
char myarray[] = {'A','F'};
int arraySize = 2;
for (int i = 0; i<arraySize; i++){
char aChar = myarray[i];
if (65 <= aChar && aChar<=90){
aChar = (char)( (aChar + 32) );
}
System.out.print(aChar);
}
}
为什么需要charAt()
?
您正在使用字符数组。如果你使用字符串数组,那么你可以尝试使用它。
对于String数组,您可以执行以下操作(如果您不想使用toLowerCase()
):
public static void toLowerCaseString(){
String myStringArray[] = {"Something","Nothing"};
for (int i = 0; i<myStringArray.length; i++){
for (int j = 0; j< myStringArray[i].length(); j++){
char aChar = myStringArray[i].charAt(j);
if (65 <= aChar && aChar<=90){
aChar = (char)( (aChar + 32) );
}
System.out.print(aChar);
}
}
}