在通用数组中使用ascii代码的java tolowercase

时间:2016-11-30 22:56:11

标签: java arrays generics

我正在尝试使用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方法?

2 个答案:

答案 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);
        }

     }
 }