这与我问过的早期问题有关.我正在向类添加toString()方法.该类使用整数堆栈创建任意长的自然数.我只是递增和递减,所以堆栈似乎是一个很好的方法.无论如何,我没有从以下代码获得任何输出:
public String toString() {
String out_final = "", backwards = "", temp_str = "";
Integer temp_int = 0;
Character temp_char = ' ';
while(!number.empty()) {
temp_int = number.pop();
temp_str = temp_int.toString();
backwards.concat(temp_str);
}
while(backwards.length() > 0) {
temp_char = backwards.charAt(backwards.length() - 1);
temp_str = temp_char.toString();
out_final.concat(temp_str);
}
return out_final;
}
Run Code Online (Sandbox Code Playgroud)
它被调用System.out.println(b4.toString());
.对象number
是指我Stack<Integer>
必须从堆栈的末尾(显然是反向),然后再将其反转以正确打印.无论如何,不要急于这个,但总是感谢帮助!
我正在实现一个自定义toJson()方法.
我的班级成员之一是字典.
我做了:
sb.Append("\"DateSource\" : {");
foreach (var row in DateSource)
{
sb.Append("[");
sb.Append(string.Format("\"RowKey\" : {0}", row.Key));
sb.Append(string.Format("\"RowData\" : {0}", row.Value));
sb.Append("]");
}
sb.Append("}");
Run Code Online (Sandbox Code Playgroud)
如何避免转换中的最后一个逗号?
我的问题是,是否可以从JAVA中没有提供toString()方法的类中打印出特定信息?
有一个问题:我们为我们的应用程序提供了一个记录器(使用aspectJ),它打印出给定的特定参数.例如:
public void addGroupMembers(Group group, String doneBy, DataListModel<User> users) {
doSomething()
}
Run Code Online (Sandbox Code Playgroud)
我们的Logger打印出以下内容:
addGroupMembers called with given arguments:
Group = [id = ..... and so on]
username
DataListModel$1231 <-
Run Code Online (Sandbox Code Playgroud)
我们必须使用DataListModel-Class,因为我们在后台使用JSF.但是,正如您所看到的,此类不提供toString方法.
我们的记录器由我们自己编写,因此我们可以适应它.是否可以模拟一个toString方法,如下所示:如果类没有提供toString,请捕获所有字段并打印它们?
或者还有其他方法吗?
在此先感谢您的帮助.问候,雷霆
public class Book {
String title;
public Book(String t) {
title = t;
}
}
public class Bookcomparator implements Comparator<Book> {
public int compare(Book one, Book two) {
return (one.title.compareTo(two.title));
}
}
public class TreesetTest {
public void go() {
Book b1 = new Book("How");
Book b2 = new Book("Remix");
Book b3 = new Book("Finding ");
Bookcomparator bc = new Bookcomparator();
TreeSet<Book> set = new TreeSet<Book>(bc);
set.add(b1);
set.add(b2);
set.add(b3);
System.out.println(set);
}
}
public class Test {
public static void main(String …
Run Code Online (Sandbox Code Playgroud) 以下代码不起作用.任何人都可以告诉我以下代码有什么问题.逻辑上它应该工作......
package assignments;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class IsPalindrome {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Enter a Word:");
StringBuffer sb1 = new StringBuffer(br.readLine());
StringBuffer sb2 = new StringBuffer(sb1);
sb1.reverse();
if(sb2.equals(sb1))
System.out.println("Palindrome");
else
System.out.println("Not a Palindrome");
}
}
Run Code Online (Sandbox Code Playgroud) 好吧,我有一个带有'MartianManager'类的程序:*注意代码不完整仍然有一些缺失的部分只是提供了整个代码,以供参考完成后它将如何完成
import java.util.ArrayList;
public class MartianManager {
private ArrayList<Martian> martians;
private ArrayList<Martian> teleporters;
public void addMartian(Martian m) {
martians.add(m);
if(m instanceof GreenMartian)
teleporters.add(m);
}
//public Object clone() {
public Martian getMartianClosestToID(int id) {
}
public void groupSpeak() {
for(Martian m : martians) {
m.speak();
}
}
public void groupTeleport(String dest) {
}
}
Run Code Online (Sandbox Code Playgroud)
和火星类:
public abstract class Martian implements Cloneable {
int id;
public Martian(int id) {
this.id = id;
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
} …
Run Code Online (Sandbox Code Playgroud) 我需要使用带有数据的节点生成二叉树,左,右.在我的toString()方法中,我使用了字符串构建器和preOrderTraverse方法.
我的toString()不会返回任何内容.任何想法为什么会这样?
private void preOrderTraverse(Node node, int depth, StringBuilder sb) {
for (int i = 1; i < depth; i++) {
sb.append(" ");
}
if (node == null) {
sb.append("null\n");
} else {
sb.append(node.data.toString());
sb.append("\n");
preOrderTraverse(node.left, depth + 1, sb);
preOrderTraverse(node.right, depth + 1, sb);
}
}
public String toString() {
StringBuilder sb = new StringBuilder();
preOrderTraverse(root, 0, sb);
return sb.toString();
}
public static void main(String[] args) {
BRT b = new BRT();
for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud) 我目前有一个toString方法,类似于下面的方法.请忽略对象仅被临时命名.我这样做是为了使每个变量的类型之间没有混淆等:
@Override
public String toString() {
for(Object object : ArrayList) {
System.out.println("This object is a " + object.getVariableA() + " and a " + object.getVariableB() + ".");
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
但是toString方法要求我返回一个值.我显然只想返回我正在打印的字符串,虽然如果我在那里放置一个返回语句,它只会打印一个Object而不是所有我正在循环的对象.什么是打印所有这些值的最佳方法,而不是简单地返回null,因为我不希望在所有对象之后打印出来?我还想确保这些对象中的每一个都按照它们当前的单独行打印,所以请不要建议包含一个长连接字符串而不包含换行符的解决方案,因为这不适合这种情况.
提前致谢!
我正在尝试比较工作,而对于我的生活,我无法弄清楚出了什么问题.
StringL l = new StringL();
l.insert("banana", 0);
l.insert("orange", 1);
l.insert("apple", 2);
l.insert("pear", 3);
if (!(l.toString().equals("banana, orange, apple, pear")));{
System.out.println("Test failed: should have returned banana, orange, apple, pear but returned " + l.toString());}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,我得到:
Test failed: should have returned banana, orange, apple, pear but returned banana, orange, apple, pear
Run Code Online (Sandbox Code Playgroud)
的ToString:
public String toString() {
String result = ("") ;
if(size() > 0)
result += stringList.get(0);
for(int i = 1; i < size(); i++)
result += ", " + stringList.get(i); …
Run Code Online (Sandbox Code Playgroud) 在C#中,我有一个类:
public class Person
{
public string name;
public int id;
}
Run Code Online (Sandbox Code Playgroud)
目前,当我这样做时:
Person person = new Person
{
name = "John",
id = 3
}
// Will be converted Console.Writeline("Person = " + person.ToString()); by the compiler
Console.Writeline("Person = " + person);
Run Code Online (Sandbox Code Playgroud)
我可以在类中做什么来使从人到人的自动转换无效.ToString()并使编译器给出一个错误来指示Person对象不能隐式转换为字符串?
tostring ×10
java ×8
c# ×2
equals ×2
arraylist ×1
class ×1
clone ×1
collections ×1
foreach ×1
instanceof ×1
logging ×1
println ×1
simulate ×1
string ×1
stringbuffer ×1