Java 大小写切换器
Java Case Switcher
所以我正在编写一个 return 小程序来切换字符串中字符的大小写,因此 HELLo 变为 hElLo,hello 变为 HeLlO,aaa 变为 AaA。不过我有点麻烦。我还是新人,正在学习 java,如果这违反了规则,我深表歉意:
public static String altCase(String text){
String str = "";
for (int i = 0; i <= text.length()-1; i++)
{
char ch = text.charAt(i);
boolean lastIsUpperCase = true;
if(Character.isUpperCase(i-1))
{
lastIsUpperCase = true;
}
else if(Character.isLowerCase(i-1))
{
lastIsUpperCase = false;
}
if(lastIsUpperCase)
{
str += Character.toLowerCase(ch);
}
else if (!lastIsUpperCase)
{
str += Character.toUpperCase(ch);
}
}
return str;
}
我会使用 StringBuilder
to build up the return value, and you could also use a String.toCharArray()
and a for-each
loop。最后,您可以测试字符是否为小写(或大写)然后交换大小写。像,
public static String altCase(String text) {
if (text == null || text.isEmpty()) {
return text;
}
StringBuilder sb = new StringBuilder(text.length());
for (char ch : text.toCharArray()) {
if (Character.isUpperCase(ch)) {
sb.append(Character.toLowerCase(ch));
} else if (Character.isLowerCase(ch)) {
sb.append(Character.toUpperCase(ch));
} else {
sb.append(ch);
}
}
return sb.toString();
}
您应该将 char 添加到您的 if 子句中,如下所示:
String str = "";
for (int i = 0; i <= text.length()-1; i++)
{
char ch = text.charAt(i);
if(Character.isUpperCase(ch))
{
str += Character.toLowerCase(ch);
}
else if(Character.isLowerCase(ch))
{
str += Character.toUpperCase(ch);
}
}
return str;
}
您可以制作一个字符数组,然后分别检查和交换每个元素。完成后,只需将该 char 数组作为参数传递给字符串,使其成为字符串
char[] word = new char[3];
String str = new String(word);
所以我成功了。
public static String altCase(String text){
String str = "";
str += Character.toUpperCase(text.charAt(0));
for (int i = 1; i <= text.length()-1; i++)
{
char ch = text.charAt(i);
boolean lastUp = flipFlop(i);
char temp = switcher(ch, lastUp);
str+=temp;
}
return str;
}
public static boolean flipFlop (int i){
boolean bool = true;
if(i==1){
bool = true;
}
else if((i%2)==0)
{
bool = false;
}
else if((i%2)!=0)
{
bool = true;
}
return bool;
}
public static char switcher (char ch, boolean lastUp){
char temp = ch;
if(lastUp){
temp = Character.toLowerCase(ch);
}
else if (lastUp==false){
temp = Character.toUpperCase(ch);
}
return temp;
}
我添加了一个'flipFlop'方法来跟踪迭代,方法'switcher'根据最后一个字符的情况在大小写之间变化。 (当字符串中的最后一个字符为大写时,lastUp 为真)。
所以我正在编写一个 return 小程序来切换字符串中字符的大小写,因此 HELLo 变为 hElLo,hello 变为 HeLlO,aaa 变为 AaA。不过我有点麻烦。我还是新人,正在学习 java,如果这违反了规则,我深表歉意:
public static String altCase(String text){
String str = "";
for (int i = 0; i <= text.length()-1; i++)
{
char ch = text.charAt(i);
boolean lastIsUpperCase = true;
if(Character.isUpperCase(i-1))
{
lastIsUpperCase = true;
}
else if(Character.isLowerCase(i-1))
{
lastIsUpperCase = false;
}
if(lastIsUpperCase)
{
str += Character.toLowerCase(ch);
}
else if (!lastIsUpperCase)
{
str += Character.toUpperCase(ch);
}
}
return str;
}
我会使用 StringBuilder
to build up the return value, and you could also use a String.toCharArray()
and a for-each
loop。最后,您可以测试字符是否为小写(或大写)然后交换大小写。像,
public static String altCase(String text) {
if (text == null || text.isEmpty()) {
return text;
}
StringBuilder sb = new StringBuilder(text.length());
for (char ch : text.toCharArray()) {
if (Character.isUpperCase(ch)) {
sb.append(Character.toLowerCase(ch));
} else if (Character.isLowerCase(ch)) {
sb.append(Character.toUpperCase(ch));
} else {
sb.append(ch);
}
}
return sb.toString();
}
您应该将 char 添加到您的 if 子句中,如下所示:
String str = "";
for (int i = 0; i <= text.length()-1; i++)
{
char ch = text.charAt(i);
if(Character.isUpperCase(ch))
{
str += Character.toLowerCase(ch);
}
else if(Character.isLowerCase(ch))
{
str += Character.toUpperCase(ch);
}
}
return str;
}
您可以制作一个字符数组,然后分别检查和交换每个元素。完成后,只需将该 char 数组作为参数传递给字符串,使其成为字符串
char[] word = new char[3];
String str = new String(word);
所以我成功了。
public static String altCase(String text){
String str = "";
str += Character.toUpperCase(text.charAt(0));
for (int i = 1; i <= text.length()-1; i++)
{
char ch = text.charAt(i);
boolean lastUp = flipFlop(i);
char temp = switcher(ch, lastUp);
str+=temp;
}
return str;
}
public static boolean flipFlop (int i){
boolean bool = true;
if(i==1){
bool = true;
}
else if((i%2)==0)
{
bool = false;
}
else if((i%2)!=0)
{
bool = true;
}
return bool;
}
public static char switcher (char ch, boolean lastUp){
char temp = ch;
if(lastUp){
temp = Character.toLowerCase(ch);
}
else if (lastUp==false){
temp = Character.toUpperCase(ch);
}
return temp;
}
我添加了一个'flipFlop'方法来跟踪迭代,方法'switcher'根据最后一个字符的情况在大小写之间变化。 (当字符串中的最后一个字符为大写时,lastUp 为真)。