1

好的,所以我有另一个程序。这应该是不言自明的。该程序用于从连续的 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);
    }

    }
}

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

4

2 回答 2

3

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

char CharCounter = inputValues.charAt(i);

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));
                }
            }
        }
    }
}
于 2013-05-29T12:04:24.010 回答
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);
        }    
    }
于 2013-05-29T12:04:15.410 回答