2016-11-30 18 views
0

我正在嘗試使用ascii代碼創建tolowercase方法。我發現這個代碼:在通用數組中使用ascii代碼的java 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給出了一個錯誤

的方法的charAt(INT)是未定義的類型T

如何可以我解決這個問題?我嘗試創建一個新的String數組,並將泛型數組轉換爲新數組,但它不起作用。我怎樣才能將泛型數組轉換爲字符串數組或我如何創建tolowercase方法在泛型數組中使用ascii代碼?

+1

爲什麼你的陣列的通用?你怎麼知道它包含字符串? – shmosel

+0

我正在做功課。我的實現必須是通用的,我不能使用任何預先編寫的Java Api類。我必須編寫自己的數據結構代碼。 – javajava

+0

假設你知道它不是null,你可以在元素上調用'toString()'來將它轉換爲一個字符串。但它似乎是一個非常不尋常的要求。 – shmosel

回答

0

這是應該做你的工作:爲什麼你需要的charAt()

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

?您正在使用字符數組。如果你使用一個字符串數組,那麼你可以嘗試使用它。

對於一個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); 
     } 

    } 
} 
+0

例如我的數組發生了T [] myarray = {「to」,「be」,「or」,「not」,「TO」,「be」}所以我需要charAt() – javajava

+0

@javajava你需要將它改爲'String []'然後使用它。 –

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"};