tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
7954
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jun 2004
    Ort
    RLP
    Beiträge
    198
    Hi,

    die Überschrift hört sich relativ einfach an, ist aber ein bissle schwerer. Ich generiere im moment aus einem jtable eine html.seite. nun kann es vorkommen, dass z. B. Pfade in der Jtable drine stehen und diese von mir aus 60 zeichen lang sind. Da die Tabelle letzten endes zum ausdrucken gedacht ist würde ich gerne nach ca. 30 zeichen den string in dieser zeile unterbrechen und direkt danach unten anfürgen. bestenfalls nach bestimmten zeichen suchen, die zum umbruch geeignet sind z. B. ". || , || / \ || // || ". Würd mich über Vorschläge und Lösunghilfen freuen..


    greets
     

  2. #2
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Hi,
    also zum Zerlegen von Strings bis zu einem bestimmten Zeichen gibt es ja den StringTokenizer. Und für einen Teilstring von Index 1 bis Index 2 benutzt man myString.substring(index1, index2)
     

  3. #3
    Registriert seit
    Jun 2004
    Ort
    RLP
    Beiträge
    198
    danke, scheint mir die erste gute antwort im internet.... ich bin eigentlich auch schon gerade dabei es mit dem tokenizer zu probieren, wenn geklappt hat schick ich den code



    thx

    hab in der api noch das hier gefunden

    String[] result = "this is a test".split("\\s");
     

  4. #4
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Versuchs mal damit:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    
    package de.tutorials;
     
    public class StringCutter {
     
        public static void main(String[] args) {
            String longStr = "T:\\ASWProject\\ide\\jakarta-struts-1.2.4\\src\\jakarta-struts-1.2.4-src\\legacy\\api-1.1\\org\\apache\\struts\\actions\\class-use";
            System.out.println(cutString2(longStr));
        }
     
        private static String cutString2(String longStr) {
            final char PREFERED_CUT_POINT = '\\';
            final int MAX_LINE_SIZE = 30;
            StringBuffer buffer = new StringBuffer(longStr);
            int len = buffer.length();
            int lastNewLine = 0;
            String s = null;
     
            for (int i = 0, j = 0; i < len; i++) {
                if (i - lastNewLine < MAX_LINE_SIZE) {
                    s = buffer.substring(lastNewLine, i);
                    continue;
                }
     
                char c = 0;
     
                int posBackward = 0, posForward = 0;
     
                for (int k = i; k > 1; k--) {
                    if (buffer.charAt(k) == PREFERED_CUT_POINT
                            && buffer.charAt(k - 1) != '\n') {
                        posBackward = k;
                        break;
                    }
                }
     
                int deltaBackward = Math.abs(i - posBackward);
     
                for (int k = i; k < len - 1; k++) {
                    if (buffer.charAt(k) == PREFERED_CUT_POINT
                            && buffer.charAt(k - 1) != '\n') {
                        posForward = k;
                        break;
                    }
                }
     
                int deltaForward = Math.abs(i - posForward);
     
                if (i + deltaForward - lastNewLine < MAX_LINE_SIZE) {
                    buffer.replace(posForward + 1, posForward + 1, "\n");
                    lastNewLine = posForward;
                } else if (i - deltaBackward - lastNewLine < MAX_LINE_SIZE) {
                    buffer.replace(posBackward + 1, posBackward + 1, "\n");
                    lastNewLine = posBackward;
                } else {
                    int pos = buffer.indexOf(String.valueOf(PREFERED_CUT_POINT),
                            lastNewLine + 1);
                    buffer.replace(pos + 1, pos + 1, "\n");
                    lastNewLine = pos;
                }
            }
            return buffer.toString();
        }
    }

    Ausgabe:
    T:\ASWProject\ide\

    jakarta-struts-1.2.4\src\

    jakarta-struts-1.2.4-src\

    legacy\api-1.1\org\apache\

    struts\actions\class-use
    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  5. #5
    Registriert seit
    Jun 2004
    Ort
    RLP
    Beiträge
    198
    merci, das kann ich denke ich auf jeden fall gebrauchen. die anwednung sieht zwar etwas anders aus und muß weiter ausgebaut werden, aber das führt denke ich in die richtige richtung

    thx
     

  6. #6
    Registriert seit
    Jun 2004
    Ort
    RLP
    Beiträge
    198
    so siehts jetzt aus... danke nochmal an thomas ...



    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    
    /*
     * Created on Nov 25, 2004
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package einarbeitung;
     
    /**
     * @author kik
     * 
     * TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
     */
    public class StringShradder {
        static StringBuffer buff = new StringBuffer();
        static char[] CUT_POINTS = {'.', '/', '\\', ',', '-', '>', '<'};
        static int MA_SIZE = 30;
        static int TEMP_MARK = 0;
        static String WBR = "<wbr>";
        public static void main(String args[]) {
     
            buff.append("<HTML>\n");
            buff.append("<HEAD>\n");
            buff.append("<BODY>\n");
            buff.append("BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB \n");
            buff.append("BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB \n");
            buff.append("BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB \n");
            buff.append("BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB \n");
            buff.append("BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB BLA BAL BAL BAL BALB BLA BALB ALB \n");
     
            String shredd3 = "1 12 123 1234 12345 123456 1234567 12345678 123456789 1234567890 flexfinance.loanSystem.loan.create.content.basicData";
     
          shreddString(shredd3);
            System.out.println(buff);
        }
     
        private static void shreddString(String longString) {
            String[] result = longString.split(" ");
            for (int i = 0; i < result.length; i++) {
                if (result[i].length() < MA_SIZE) {
                    buff.append(result[i]).append(" ");
                } else if (result[i].length() >= MA_SIZE) {
                    for (int f = 0; f < result[i].length(); f++) {
                        if (identifier(result[i].charAt(f))) {
                            buff.append(WBR);
                        }
                        buff.append(result[i].charAt(f));
                    }
                }
            }
        }
        private static boolean identifier(char testung) {
            for (int x = 0; x < CUT_POINTS.length; x++) {
                if (testung == CUT_POINTS[x]) {
                    return true;
                }
            }
            return false;
        }
    }

    gruß aus trier
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 13.01.09, 22:18
  2. Text nach x Zeichen abschneiden
    Von FP4Lisa im Forum PHP
    Antworten: 2
    Letzter Beitrag: 22.06.05, 23:56
  3. Str nach 20 Zeichen abschneiden
    Von PHPneu1 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 29.01.05, 14:33
  4. String nach XX Zeichen breaken?!
    Von furiyoh im Forum PHP
    Antworten: 2
    Letzter Beitrag: 07.10.04, 04:03
  5. String nach x Zeichen in Array
    Von Sir Robin im Forum PHP
    Antworten: 3
    Letzter Beitrag: 25.09.02, 18:42