2015-02-22 4 views
-1

Итак, вот код, который я создал для программы, чтобы прочитать текстовый файл. Теперь может кто-то сказать мне, как переключить регистр букв из верхнего регистра на нижний и наоборот? Обратите внимание, что я хочу, чтобы программа считывала файл из командной строки, а не строку.
Если возможно, мне нужен ответ в коде: | Спасибо
Я очень новичок в Java и могу воспользоваться помощью.Как переключить/перевернуть случай каждой буквы в текстовом файле?

public class Main { 

     /** 
     * @param args the command line arguments 
     */ 
     public static void main(String[] args) { 
     // TODO code application logic here 
     java.io.File file = new   java.io.File("C:\\Users\\Lifeless\\Desktop\\123.txt"); 

     try { 
     Scanner input = new Scanner(file); 
     while (input.hasNext()) { 
     String num = input.nextLine(); //grabs line 
     System.out.println(num); 
     } 
     } 
     catch (FileNotFoundException e) { 
     System.err.format("File does not exist \n"); 
+0

Это дубликат: HTTP: //stackoverflow.com/questions/1729778/how-can-i-invert-the-case-of-a-string-in-java –

ответ

0

Я использовал буферизованный считыватель и поместил все строки файла в ArrayList.

static ArrayList<String> lines; 
    public static void main(String[] args) throws FileNotFoundException, IOException 
    { 
    lines = new ArrayList<>(); 
    File f = new File(args[0]); 
    BufferedReader r = new BufferedReader(new FileReader(f)); 

    String line = r.readLine(); 
    while(line != null) 
    { 
     lines.add(invert(line)); 
     line = r.readLine(); 
    } 
    for(String s : lines) 
    { 
     System.out.println(s); 
    } 
    } 

    private static String invert(String line) 
    { 
    char[] singleChars = line.toCharArray(); //split Line into single Characters 
    for(int i = 0;i< singleChars.length;i++) //Iterate over every single Character 
    { 
     if(Character.isAlphabetic (singleChars[i])) 
     { 
     if(Character.isUpperCase (singleChars[i])) //swap Upper to Lower and vice versa 
     { 
      singleChars[i] = Character.toLowerCase (singleChars[i]); 
     }else 
     { 
      singleChars[i] = Character.toUpperCase (singleChars[i]); 
     } 
     } 
    } 
    return new String(singleChars); 
    } 
+0

Спасибо за ответ. .. вы можете рассказать мне, как и где добавить мою командную строку, из которой она будет читать файл? – LifeLess

+0

вы можете легко скопировать и вставить мой класс. он считывает файл из аргументов, которые вы передаете классу при его выполнении. 'Файл f = новый файл (args [0]);' принимает имя файла. Сам файл находится в том же каталоге, что и ваш файл класса, если вы пишете только ваш файл, а не путь – Raildex

+0

, поэтому вместо «нового файла» я пишу командную строку? – LifeLess