Java 替换字符
我有一个由用户输入的字符串。 我正在尝试将所有非大写字母(即数字或符号)替换为空格,而不使用Java 替换字符,java,loops,char,Java,Loops,Char,我有一个由用户输入的字符串。 我正在尝试将所有非大写字母(即数字或符号)替换为空格,而不使用replace()、Stringbuilders或数组等方法 这就是我到目前为止所做的: public static void formatPlaintext(String sentence){ String sentenceUpper = sentence.toUpperCase(); System.out.println(sentenceUpper); String emptyStri
replace()
、Stringbuilders
或数组等方法
这就是我到目前为止所做的:
public static void formatPlaintext(String sentence){
String sentenceUpper = sentence.toUpperCase();
System.out.println(sentenceUpper);
String emptyString = " ";
for(int i = 0; i< sentenceUpper.length() ; i++){
char ch = sentenceUpper.charAt(i);
if(ch < 'A' || ch > 'Z'){
ch = emptyString.charAt(0);
}
}
}//end of formatPlaintext
因为emptyString没有任何字符。但是,即使我输入了一个任意常量,它也不会用这个任意常量替换非字母。这不是替换Java字符串中字符的方式。在Java中,字符串是不可变的,因此不能设置任何给定的索引。此外,charAt()
方法对调用它的字符串没有也不能做任何事情-它所做的只是在该位置返回char
。最后,您可能不应该使用void
——返回字符串,并在方法末尾替换字符,然后使用返回值。您可以使用Character
类的staticisUpperCase
方法,通过迭代初始字符串
并构建一个新的字符串
来完成此操作:
public static String formatPlainText(String sentence)
{
String replacedSentence = "";
for(int i = 0; i< sentence.length() ; i++){
char ch = sentence.charAt(i);
if (Character.isUpperCase(ch)) {
replacedSentence += ch;
}
else {
replacedSentence += " ";
}
}
return replacedSentence;
}
公共静态字符串格式明文(字符串语句)
{
字符串replacedcentence=“”;
for(int i=0;i<句子长度();i++){
char ch=句子charAt(i);
if(字符.isUpperCase(ch)){
replacedcentence+=ch;
}
否则{
replacedEntence+=“”;
}
}
返回替换事件;
}
如果您要经常使用此方法,或者对于特别长的字符串
,则绝对应该使用StringBuilder
——以字符为单位串联字符串
,效率非常低。这不是替换Java字符串中字符的方法。在Java中,字符串是不可变的,因此不能设置任何给定的索引。此外,charAt()
方法对调用它的字符串没有也不能做任何事情-它所做的只是在该位置返回char
。最后,您可能不应该使用void
——返回字符串,并在方法末尾替换字符,然后使用返回值。您可以使用Character
类的staticisUpperCase
方法,通过迭代初始字符串
并构建一个新的字符串
来完成此操作:
public static String formatPlainText(String sentence)
{
String replacedSentence = "";
for(int i = 0; i< sentence.length() ; i++){
char ch = sentence.charAt(i);
if (Character.isUpperCase(ch)) {
replacedSentence += ch;
}
else {
replacedSentence += " ";
}
}
return replacedSentence;
}
公共静态字符串格式明文(字符串语句)
{
字符串replacedcentence=“”;
for(int i=0;i<句子长度();i++){
char ch=句子charAt(i);
if(字符.isUpperCase(ch)){
replacedcentence+=ch;
}
否则{
replacedEntence+=“”;
}
}
返回替换事件;
}
如果您要经常使用此方法,或者对于特别长的字符串
,则绝对应该使用StringBuilder
——以字符为单位串联字符串
,效率非常低。这不是替换Java字符串中字符的方法。在Java中,字符串是不可变的,因此不能设置任何给定的索引。此外,charAt()
方法对调用它的字符串没有也不能做任何事情-它所做的只是在该位置返回char
。最后,您可能不应该使用void
——返回字符串,并在方法末尾替换字符,然后使用返回值。您可以使用Character
类的staticisUpperCase
方法,通过迭代初始字符串
并构建一个新的字符串
来完成此操作:
public static String formatPlainText(String sentence)
{
String replacedSentence = "";
for(int i = 0; i< sentence.length() ; i++){
char ch = sentence.charAt(i);
if (Character.isUpperCase(ch)) {
replacedSentence += ch;
}
else {
replacedSentence += " ";
}
}
return replacedSentence;
}
公共静态字符串格式明文(字符串语句)
{
字符串replacedcentence=“”;
for(int i=0;i<句子长度();i++){
char ch=句子charAt(i);
if(字符.isUpperCase(ch)){
replacedcentence+=ch;
}
否则{
replacedEntence+=“”;
}
}
返回替换事件;
}
如果您要经常使用此方法,或者对于特别长的字符串
,则绝对应该使用StringBuilder
——以字符为单位串联字符串
,效率非常低。这不是替换Java字符串中字符的方法。在Java中,字符串是不可变的,因此不能设置任何给定的索引。此外,charAt()
方法对调用它的字符串没有也不能做任何事情-它所做的只是在该位置返回char
。最后,您可能不应该使用void
——返回字符串,并在方法末尾替换字符,然后使用返回值。您可以使用Character
类的staticisUpperCase
方法,通过迭代初始字符串
并构建一个新的字符串
来完成此操作:
public static String formatPlainText(String sentence)
{
String replacedSentence = "";
for(int i = 0; i< sentence.length() ; i++){
char ch = sentence.charAt(i);
if (Character.isUpperCase(ch)) {
replacedSentence += ch;
}
else {
replacedSentence += " ";
}
}
return replacedSentence;
}
公共静态字符串格式明文(字符串语句)
{
字符串replacedcentence=“”;
for(int i=0;i<句子长度();i++){
char ch=句子charAt(i);
if(字符.isUpperCase(ch)){
replacedcentence+=ch;
}
否则{
replacedEntence+=“”;
}
}
返回替换事件;
}
如果您要经常使用此方法,或者使用特别长的字符串
,则绝对应该使用StringBuilder
——以字符为单位串联字符串
,效率非常低。您必须记住,Java中的参数是作为值传递的,而不是作为引用传递的,在这种情况下,字符串是一个不可变的对象,也就是说,当您进行连接或替换时,字符串是不能更改的,您实际上是在创建一个新字符串
我推荐什么