1   /*
2    *  Strings.java
3    *
4    *  Copyright (c) 1998-2005, The University of Sheffield.
5    *
6    *  This file is part of GATE (see http://gate.ac.uk/), and is free
7    *  software, licenced under the GNU Library General Public License,
8    *  Version 2, June 1991 (in the distribution as file licence.html,
9    *  and also available at http://gate.ac.uk/gate/licence.html).
10   *
11   *  Hamish Cunningham, 22/02/2000
12   *
13   *  $Id: Strings.java,v 1.8 2005/01/11 13:51:37 ian Exp $
14   */
15  
16  package gate.util;
17  
18  import java.io.*;
19  
20  /** Some utilities for use with Strings. */
21  public class Strings {
22  
23    /** Debug flag */
24    private static final boolean DEBUG = false;
25  
26    /** What character to pad with. */
27    private static char padChar = ' ';
28  
29    /** Local fashion for newlines this year. */
30    private static String newline = System.getProperty("line.separator");
31  
32    /** Get local fashion for newlines. */
33    public static String getNl() { return newline; }
34  
35    /** Local fashion for path separators. */
36    private static String pathSep = System.getProperty("path.separator");
37  
38    /** Get local fashion for path separators (e.g. ":"). */
39    public static String getPathSep() { return pathSep; }
40  
41    /** Local fashion for file separators. */
42    private static String fileSep = System.getProperty("file.separator");
43  
44    /** Get local fashion for file separators (e.g. "/"). */
45    public static String getFileSep() { return fileSep; }
46  
47    /** Add n pad characters to pad. */
48    public static String addPadding(String pad, int n) {
49      StringBuffer s = new StringBuffer(pad);
50      for(int i = 0; i < n; i++)
51        s.append(padChar);
52  
53      return s.toString();
54    } // padding
55  
56    /** Helper method to add line numbers to a string */
57    public static String addLineNumbers(String text) {
58      // construct a line reader for the text
59      BufferedReader reader = new BufferedReader(new StringReader(text));
60      String line = null;
61      StringBuffer result = new StringBuffer();
62  
63      try {
64        for(int lineNum = 1; ( line = reader.readLine() ) != null; lineNum++) {
65          String pad;
66          if(lineNum < 10) pad = " ";
67          else pad = "";
68          result.append(pad + lineNum + "  " + line + Strings.getNl());
69        }
70      } catch(IOException ie) { }
71  
72      return result.toString();
73    } // addLineNumbers
74  
75  } // class Strings
76