2013-05-29 153 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

我已经编辑过了,但是现在编译好了,但是没有输出。 –

相关问题