2013-05-29 185 views
1

好的,所以我有另一個程序。這個應該是比較自我解釋的。這個程序是爲了從連續的java輸入中讀取字符(一行一行),直到。被輸入。然後它將所有大寫字母轉換爲小寫字母,反之亦然(特殊字符或數字不被修改)。然後輸出更改。Java讀取大寫/小寫字符並轉換它們

import java.io.*; 
class textchanger 
{ 
    public static void main(String[] args) throws IOException 
    { 
    InputStreamReader inStream = new InputStreamReader (System.in); 
    BufferedReader userInput = new BufferedReader (inStream); 
    String inputValues; 
    char charCounter = 0; 

    System.out.println("Welcome the to text modifier!"); 
    System.out.println("Inset any character(s) you wish: "); 

    inputValues = userInput.readLine(); 

    while ((inputValues = userInput.readLine()) != null && inputValues.indexOf('.') == -1) { 
    } 
    int length = inputValues.length(); 

    for(int i = 0; i < length; i++) { 
     charCounter = inputValues.charAt(i); 
    } 
    if(Character.isUpperCase(charCounter)) { 
    Character.toLowerCase(charCounter); 
    System.out.println(charCounter); 
    } 
    else if(Character.isLowerCase(charCounter)) { 
    Character.toUpperCase(charCounter); 
    System.out.println(charCounter); 
    } 

    } 
} 

任何幫助,將不勝感激。我收到的當前錯誤在「。」後沒有顯示。字符被輸入。

+0

你宣佈'CharCounter'兩次,上線9和22,在嵌套的作用域。刪除第22行的char。 – Tom

+0

當前錯誤是CharCouner可能尚未初始化。 –

回答

1

當您在for循環中聲明CharCounter時,您正在轉換for循環後的字符。使用像

for(int i = 0; i < length; i++) { 
     char CharCounter = inputValues.charAt(i); 
     if(Character.isUpperCase(CharCounter)) { 
      Character.toLowerCase(CharCounter); 
      System.out.println(CharCounter); 
     }else if(Character.isLowerCase(CharCounter)) { 
      Character.toUpperCase(CharCounter); 
      System.out.println(CharCounter); 
     }  
    } 
3
CharCounter

main方法的範圍已經被定義如下。與

CharCounter = inputValues.charAt(i); 

更換

char CharCounter = inputValues.charAt(i); 

這樣的變量之後將需要被初始化爲我們要求所有的局部變量在Java中被初始化:

char CharCounter = 0; 

和使用Java命名約定命名變量如charCounter時。


class TextChanger { 
    public static void main(String[] args) throws IOException { 
     InputStreamReader inStream = new InputStreamReader(System.in); 
     BufferedReader userInput = new BufferedReader(inStream); 
     String inputValues; 

     System.out.println("Welcome the to text modifier!"); 
     System.out.println("Inset any character(s) you wish: "); 

     while ((inputValues = userInput.readLine()) != null 
       && inputValues.indexOf('.') == -1) { 
      int length = inputValues.length(); 
      for (int i = 0; i < length; i++) { 
       char charCounter = inputValues.charAt(i); 
       if (Character.isUpperCase(charCounter)) { 
        System.out.println(Character.toLowerCase(charCounter)); 
       } else if (Character.isLowerCase(charCounter)) { 
        System.out.println(Character.toUpperCase(charCounter)); 
       } 
      } 
     } 
    } 
} 
+0

java編譯器現在說它可能沒有被初始化。 :/ –

+0

你可以像上面那樣初始化,或者在@ for'循環中有一個'charCounter'聲明,因爲@StinePike已經完成了 – Reimeus

+0

我已經編輯過了,但是現在編譯好了,但是沒有輸出。 –

相關問題