Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 替换字符_Java_Loops_Char - Fatal编程技术网

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
类的static
isUpperCase
方法,通过迭代初始
字符串
并构建一个新的
字符串
来完成此操作:

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
类的static
isUpperCase
方法,通过迭代初始
字符串
并构建一个新的
字符串
来完成此操作:

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
类的static
isUpperCase
方法,通过迭代初始
字符串
并构建一个新的
字符串
来完成此操作:

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
类的static
isUpperCase
方法,通过迭代初始
字符串
并构建一个新的
字符串
来完成此操作:

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中的参数是作为值传递的,而不是作为引用传递的,在这种情况下,字符串是一个不可变的对象,也就是说,当您进行连接或替换时,字符串是不能更改的,您实际上是在创建一个新字符串

我推荐什么