gpt4 book ai didi

java - Java中的CamelCaser函数,调试问题

转载 作者:行者123 更新时间:2023-11-30 02:57:58 26 4
gpt4 key购买 nike

我正在 Java 中创建一个 CamelCase 函数,它接受一个字符串 this_is_a_sentence 并返回 ThisIsASentence 我的主要问题来自于处理字符串中的不同字符。

到目前为止我已经:

  import java.util.Scanner;   

public class Main{

public static String camelCaser(String str){
char[] strChr = str.toCharArray();

strChr[0] = strChr[0].toUpperCase;

for(int i = 0; i < strChr.length; i++){
if (strChr[i] == '_'){
strChr[i] = strChr[i+1].toUpperCase;
strChr[i+1] = "";
}
}
String newStr = new String(strChr);
return newStr;
}

public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("String: ");
String str = input.next();
System.out.printf("Converting: %s into %s", str, camelCaser(str));
}
}

我的主要问题似乎是你不能像我在C中习惯的那样改变单个字符。我读过您可以使用一个名为 Character 的类,但我不知道如何使用它。关于此事的 Java 文档 https://docs.oracle.com/javase/7/docs/api/java/lang/Character.html也没有帮助我。

最佳答案

我改变了你的一些逻辑来使这项工作成功。让它工作的最简单的方法是在字符串中搜索 _,然后将下面的字母大写。之后,取出生成的字符串并删除所有 _。结果是这样的:

import java.util.Scanner;   

public class Caser{

public static String camelCaser(String str){
char[] strChr = str.toCharArray();
strChr[0] = Character.toUpperCase(strChr[0]);
for(int i = 0; i < strChr.length; i++) if (strChr[i] == '_') strChr[i+1] = Character.toUpperCase(strChr[i+1]);
String reply = new String(strChr);
reply = reply.replace("_", "");
return reply;
}

public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("String: ");
String str = input.next();
System.out.printf("Converting: %s into %s", str, camelCaser(str));
}
}

编辑:

Stringreply = new String(strChr);有什么作用?

这将创建一个名为reply的新变量。该变量是一个字符串。 new String(strChr) 是 String 类的一个助手,您可以给它一个 char[],它会自动将其转换为字符串。

reply =reply.replace("_", ""); 是做什么的?

.replace(String, String) 是一个字符串方法,它将搜索所述字符串(在本例中为 reply),并将搜索 的所有实例_,当它找到它们时,它将用空字符串替换它(在本例中,它是空白的"")。

关于java - Java中的CamelCaser函数,调试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36727833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com