Java读取大写/小写字符并转换它们

时间:2013-05-29 12:01:47

标签: java case

好的,我有另一个程序。这个应该是相当自我解释的。该程序用于从连续的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);
    }

    }
}

对此有任何帮助将不胜感激。我收到的当前错误在“。”之后没有显示。字符输入。

2 个答案:

答案 0 :(得分:3)

CharCounter已在main方法的范围内定义。取代

char CharCounter = inputValues.charAt(i);

CharCounter = inputValues.charAt(i);

执行此操作后,需要初始化变量,因为需要在Java中初始化所有局部变量:

char CharCounter = 0;

在命名charCounter等变量时使用Java命名约定。


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));
                }
            }
        }
    }
}

答案 1 :(得分: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);
        }    
    }