eca*_*ain 2 java string toupper tolower
我有我的代码将案例从上部切换到下部,反之亦然.我也可以将它从上到下切换,从下到上.我的问题是; 有没有办法可以让它包括逗号或句号等字符.例如,如果我输入字符串"Hello,there".我会得到:"你好,在那里.","你好,那里"和"你好".我怎么能把它拿到我的第三个输出会说"你好,那里"的地方.
import java.util.*;
public class UpperLower2
{
public static void main(String[] args)
{
System.out.println("Enter in a sentence:");
Scanner input = new Scanner(System.in);
String sentence = input.nextLine();
System.out.println("All uppercase:" + sentence.toUpperCase());
System.out.println("All lowercase:" + sentence.toLowerCase());
System.out.println("Converted String:" + toggleString(sentence));
input.close();
}
public static String toggleString(String sentence)
{
String toggled = "";
for(int i=0; i<sentence.length(); i++)
{
char letter = sentence.charAt(i);
if(Character.isUpperCase(sentence.charAt(i)))
{
letter = Character.toLowerCase(letter);
toggled = toggled + letter;
}
else if(Character.isLowerCase(sentence.charAt(i)))
{
letter = Character.toUpperCase(letter);
toggled = toggled + letter;
}
}
return toggled;
}
Run Code Online (Sandbox Code Playgroud)
}
如果一个字符既不是大写字母也不是小写字母,那么你应该按原样使用它.此外,不要使用a String来累积你的输出 - 这是StringBuilder用于:
public static String toggleString(String sentence) {
StringBuilder toggled = new StringBuilder(sentence.length());
for (char letter : sentence.toCharArray()) {
if(Character.isUpperCase(letter)) {
letter = Character.toLowerCase(letter);
} else if(Character.isLowerCase(letter)) {
letter = Character.toUpperCase(letter);
}
toggled.append(letter);
}
return toggled.toString();
}
Run Code Online (Sandbox Code Playgroud)
编辑:
Java 8语义中的类似实现,无需自己循环遍历字符串:
public static String toggleStringJava8(String sentence) {
return sentence.chars().mapToObj(c -> {
if (Character.isUpperCase(c)) {
c = Character.toLowerCase(c);
} else if (Character.isLowerCase(c)) {
c = Character.toUpperCase(c);
}
return String.valueOf((char)c);
}).collect(Collectors.joining());
}
Run Code Online (Sandbox Code Playgroud)