java 字符串无法转换为 StringBuffer
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/36855538/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
String cannot be converted to StringBuffer
提问by CodeCodeCode
I am making a playfair cipher and I encountered an error that String cannot be converted to StringBuffer. How can I make my program work? Or how can I convert StringBuffer to String without compromising the code?
我正在制作一个 playfair 密码,但遇到一个错误,即 String 无法转换为 StringBuffer。我怎样才能使我的程序工作?或者如何在不影响代码的情况下将 StringBuffer 转换为 String?
public static StringBuffer addFiller (StringBuffer input)
{
for( int x = 0; x < input.length() - 1; x++)
{
if(input.substring(x+1, 1).equals(input.substring(x, 1)))
{
input = input.insert(x+1, "Q");
}
if("Q".equals(input.substring(x, 1)) && "Q".equals(input.substring(x+1, 1)))
{
input = input.insert(x+1, "Z");
}
}
return input;
}
public static String modifyPlaintext(String keyword)
{
keyword = keyword.toUpperCase();
keyword = keyword.trim();
keyword = keyword.replace(" ","");
//StringBuffer.toString(addFiller);
keyword = addFiller(keyword); // error starts here and it says that keyword = java.lang.String "ALLISKNOWNFLYATONCE" even though I didn't initialize it. What does it mean?
if (keyword.length() % 2 != 0)
{
keyword += "Q";
}
keyword = insertSpaceInSpecificNumber(2, keyword, ' ');
return keyword;
}
回答by Kaustubh Khare
1) Create StringBuffer
object and pass it to addFilter()
.
1) 创建StringBuffer
对象并将其传递给addFilter()
.
2) Convert StringBuffer
object return by addFilter()
into String by toString()
.
2) 将StringBuffer
对象 return byaddFilter()
转换为 String by toString()
。
keyword = addFilter(new StringBuffer(keyword)).toString();
回答by Vikrant Kashyap
String
is final and immutable too
String
也是最终的和不可变的
so , This class cannot be extended or inherited by any other class. So, There is no IS-A
Relationship between these two classes.
So,
所以,这个类不能被任何其他类扩展或继承。所以,IS-A
这两个类之间没有关系。所以,
String never be converted or referenced to any other Class except
java.lang.Object
directly .
除了
java.lang.Object
直接之外,字符串永远不会被转换或引用到任何其他类。
but StringBuffer
provides a Constructor through which you can convert a String
into a StringBuffer
Object.
但StringBuffer
提供了一个构造函数,通过它您可以将 a 转换String
为一个StringBuffer
对象。
public java.lang.StringBuffer(java.lang.String); //pass string as an argument. StringBuffer object will you get.
so here you should try this code
所以在这里你应该试试这个代码
addFilter(new StringBuffer(keyword)).toString();//try this code
Thanks.
谢谢。