Stringmanipulationen

 

In einem weiteren Projekt beschäftigen wir uns mit Zeichenketten (Strings). Stringmethoden wie length(); charAt(int); toUpperCase(); toLowerCase(); indexOf(String); replace(char, char); substring(int,int); werden hier angewandt.

Auszüge aus dem Quelltext:

public String kodiere(String pText, int pOffset){
        String lText="";
        for (int i=0;i<pText.length();i++){
            char c = pText.charAt(i);
            lText+=code(c,pOffset);
        }
        return lText;
    }
    
    public char code(char pChar, int pOffset){
        String lAlphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        if (pOffset<0||pOffset>25)pOffset=0;
        if (pChar==' ')return pChar;
        int lIndex = lAlphabet.indexOf(""+pChar);
        if (lIndex+pOffset<26)return lAlphabet.charAt(lIndex+pOffset);
        return lAlphabet.charAt(lIndex+pOffset-26);
    }
    
    public String dekodiere(String pText, int pOffset){
        String lText="";
        if (pOffset<0||pOffset>25)pOffset=0;
        for (int i=0;i<pText.length();i++){
            char c = pText.charAt(i);
            lText+=buchstabe(c,pOffset);
        }
        return lText;
    }
    
    public char buchstabe(char pChar, int pOffset){
        String lAlphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        if (pOffset<0||pOffset>25)pOffset=0;
        if (pChar==' ')return pChar;
        int lIndex = lAlphabet.indexOf(""+pChar);
        if (lIndex-pOffset>=0)return lAlphabet.charAt(lIndex-pOffset);
        return lAlphabet.charAt(lIndex-pOffset+26);
    }
    
    public int zeichenhaeufigkeit(String pText,char pChar){
        int lAnzahl=0;
        for (int i=0;i<pText.length();i++){
            char lChar = pText.charAt(i);
            if (lChar==pChar)lAnzahl++;
        }
        return lAnzahl;
    }
    
    public boolean istPalindrom(String pText){
        boolean lPalindrom=true;
        pText=pText.toUpperCase();
        int i=0;
        while (lPalindrom&&i<pText.length()/2){
            lPalindrom=lPalindrom&&pText.charAt(i)==pText.charAt(pText.length()-i-1);
            i++;
        }
        return lPalindrom;
    }
    
    public String chinesensprache(String pText){
        String lText="";
        for (int i=0;i<pText.length();i++){
            if (pText.charAt(i)=='R')lText+="L";
            else if (pText.charAt(i)=='r')lText+="l";
            else lText+=pText.charAt(i);
        }
        return lText;
    }