Ich würde mich über hilfreiche Kommentare zur "Ansehnlichkeit" des Codes und über Verbesserungsvorschläge freuen [;
package bubblesort;
/**
*
* @version v0.2 (05/05/11)
*
*/
public class SortString
{
private int elements;
private String[] sortContent;
//Constructor
public SortString(int pElements, String[] pSortContent)
{
elements = pElements;
sortContent = new String[elements];
for(int i=0; i < elements; i++)
{
sortContent = pSortContent;
}
sortString();
}
//Sortieralgorithmus
private void sortString()
{
String temp;
boolean changed = true;
while(changed == true)
{
changed = false;
for(int i=0; i<elements; i++)
{
if(getOrder(sortContent, sortContent[i++]) == true)
{
temp = sortContent;
sortContent = sortContent[i++];
sortContent[i++] = temp;
changed = true;
}
}
}
}
private boolean getOrder(String pCurrentItem, String pNextItem)
{
if(defineOrder(pCurrentItem, 1, 1)>defineOrder(pNextItem, 1, 1))
{
return true;
}
else
{
return false;
}
}
private double defineOrder(String pItem, double pGrade, int pIndex)
{
double result = 0;
if(pItem.charAt(pIndex)=='A' || pItem.charAt(pIndex)=='a')
{
result = result+(1/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
else if(pItem.charAt(pIndex)=='B' || pItem.charAt(pIndex)=='B')
{
result = result+(2/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
//und so weiter
else if(pItem.charAt(pIndex)=='Z' || pItem.charAt(pIndex)=='z')
{
result = result+(26/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
//edit v0.2
else if(pItem.charAt(pIndex)=='Ä' || pItem.charAt(pIndex)=='ä')
{
result = result+(1.5/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}else if(pItem.charAt(pIndex)=='Ö' || pItem.charAt(pIndex)=='ö')
{
result = result+(15.5/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
else if(pItem.charAt(pIndex)=='Ü' || pItem.charAt(pIndex)=='ü')
{
result = result+(21.5/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
return result;
}
}
/**
*
* @version v0.2 (05/05/11)
*
*/
public class SortString
{
private int elements;
private String[] sortContent;
//Constructor
public SortString(int pElements, String[] pSortContent)
{
elements = pElements;
sortContent = new String[elements];
for(int i=0; i < elements; i++)
{
sortContent = pSortContent;
}
sortString();
}
//Sortieralgorithmus
private void sortString()
{
String temp;
boolean changed = true;
while(changed == true)
{
changed = false;
for(int i=0; i<elements; i++)
{
if(getOrder(sortContent, sortContent[i++]) == true)
{
temp = sortContent;
sortContent = sortContent[i++];
sortContent[i++] = temp;
changed = true;
}
}
}
}
private boolean getOrder(String pCurrentItem, String pNextItem)
{
if(defineOrder(pCurrentItem, 1, 1)>defineOrder(pNextItem, 1, 1))
{
return true;
}
else
{
return false;
}
}
private double defineOrder(String pItem, double pGrade, int pIndex)
{
double result = 0;
if(pItem.charAt(pIndex)=='A' || pItem.charAt(pIndex)=='a')
{
result = result+(1/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
else if(pItem.charAt(pIndex)=='B' || pItem.charAt(pIndex)=='B')
{
result = result+(2/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
//und so weiter
else if(pItem.charAt(pIndex)=='Z' || pItem.charAt(pIndex)=='z')
{
result = result+(26/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
//edit v0.2
else if(pItem.charAt(pIndex)=='Ä' || pItem.charAt(pIndex)=='ä')
{
result = result+(1.5/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}else if(pItem.charAt(pIndex)=='Ö' || pItem.charAt(pIndex)=='ö')
{
result = result+(15.5/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
else if(pItem.charAt(pIndex)=='Ü' || pItem.charAt(pIndex)=='ü')
{
result = result+(21.5/pGrade);
defineOrder(pItem, pGrade*10, pIndex++);
}
return result;
}
}
Zuletzt bearbeitet: