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