标签: tostring

为什么这段 Java 代码隐式调用 toString() 方法?

为什么是输出?:球体 0

它以某种方式隐式调用 toString() 方法?这是如何运作的 ?

class BerylliumSphere {
    private static long counter = 0;
    private final long id = counter++;
    public String toString() { 
        return "Sphere " + id;
    }
}

public class Test {
    public static void main (String[] args) {
        BerylliumSphere spheres = new BerylliumSphere();
        System.out.println(spheres);
    }
}

// output: Sphere 0 
Run Code Online (Sandbox Code Playgroud)

java printing tostring implicit

-1
推荐指数
1
解决办法
1077
查看次数

为什么 ToStringBuilder 工作不一致?

在下面的代码中,为什么包含的两行会System.out.println(person); 产生不同的输出?第二行间接调用了Job.toString产生字符串的方法"Manager",但第一行神秘地没有产生Job@28f67ac7。在person.put("a", "b");我看来,这两者之间的界限应该没有任何区别。

代码:

import java.util.*;
import org.apache.commons.lang3.builder.*;

class Job extends HashMap<String, String> {
    @Override public String toString() {
        return "Manager";
    }
}

class Person extends HashMap<String, String> {
    Job job;

    Person() {
        this.job = new Job();
    }

    @Override public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}

class Test {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person);
        person.put("a", "b");
        System.out.println(person);
    }
}
Run Code Online (Sandbox Code Playgroud)

安慰:

Person@2b80d80f[job=Job@28f67ac7,threshold=0,loadFactor=0.75]
Person@2b80d80f[job=Manager,threshold=12,loadFactor=0.75]
Run Code Online (Sandbox Code Playgroud)

java tostring apache-commons apache-commons-lang apache-commons-lang3

-1
推荐指数
1
解决办法
315
查看次数

如何在java中为加权无向图编写toString方法?

我已经编写了一个用于无向图的类和一个符号表来将字符串转换为数字,反之亦然但是这两个字符串方法不起作用,因为我得到了堆栈溢出错误.我实现了一个LinkedStack,它与java库中的堆栈相同.我没有收到编译错误,如果能查看toString方法,我将不胜感激.其他方法工作正常.这是下面的代码.我认为问题是当我调用迭代器时

public class EdgeWeightedGraph {
private final int V;
private int E;
private LinkedStack<Edge>[] adj;

public EdgeWeightedGraph(int V){
    this.V = V;
    this.E = 0;
    adj = new LinkedStack[V];
    for (int v = 0; v < V; v++)
    {
        adj[v] = new LinkedStack<Edge>();
    }
}

public int V(){
    return V(); // This was the error. thank you for spotting it :)
}

public int E(){
    return E;
}

public int degree(int v){
    return adj[v].size();
}

public void addEdge(Edge e){
    int v …
Run Code Online (Sandbox Code Playgroud)

java iterator tostring undirected-graph weighted-graph

-1
推荐指数
1
解决办法
219
查看次数

将数组数据转换为字符串 - reactjs

我有一个包含多个对象的数组。为了向您展示数组的结构,它是这样的 在此处输入图片说明

0: {lat: "7.9511758", lon: "80.7426426"}
1: {lat: "6.9566662", lon: "80.7608237"}
2: {lat: "6.3872411", lon: "80.4952031"}
3: {lat: "5.9435367", lon: "80.4543506"}
4: {lat: "6.4543259", lon: "81.5608547"}
5: {lat: "7.8554038", lon: "80.6491562"}
6: {lat: "6.8556687", lon: "81.0505434"}
7: {lat: "7.293609", lon: "80.6391363"}
8: {lat: "6.802641", lon: "80.7899271"}
9: {lat: "8.3351457", lon: "80.3332731"}
10: {lat: "6.0237174", lon: "80.2153073"}
11: {lat: "7.9341074", lon: "80.943138"}
12: {lat: "7.9317005", lon: "81.5589219"}
13: {lat: "6.8377508", lon: "81.8086608"}
Run Code Online (Sandbox Code Playgroud)

我想使用这个数组的数据创建一个字符串。我需要创建一个看起来像这样的字符串。我的数据存储在一个状态为this.state.destinationLocation

7.9511758,80.7426426|6.9566662,80.7608237|6.3872411,80.4952031|.....
Run Code Online (Sandbox Code Playgroud)

我怎样才能达到这个结果?

javascript arrays tostring reactjs

-1
推荐指数
1
解决办法
1万
查看次数

toString仅适用于括号或非文字数字

出于某种原因,当我尝试调用toString文字数字时,它会失败:

> 5.toString()
SyntaxError: Unexpected token ILLEGAL
Run Code Online (Sandbox Code Playgroud)

所以我尝试将它放在一个变量中,它起作用了:

> var five = 5
undefined
> five.toString()
"5"
Run Code Online (Sandbox Code Playgroud)

我觉得这有点奇怪,经过一些更多的实验,我发现在括号中包含一个文字以某种方式使它工作:

> (5).toString()
"5"
Run Code Online (Sandbox Code Playgroud)

这看起来奇怪!为什么在括号中包装文字会改变什么?为什么不起作用5.toString()

javascript string tostring parentheses

-2
推荐指数
1
解决办法
272
查看次数

如果在toString Java中

对于我的班级,我遇到了一个问题,我必须创建一个名为Fan的类.然后我被告知要分配不同的字段,其中一个是一个调用的布尔值,如果真的意味着风扇打开了.最后被告知这一点

一个名为的方法toString(),返回风扇的字符串描述.如果风扇打开,则该方法返回一个组合字符串中的风扇速度,颜色和半径.如果风扇未打开,则该方法将返回扇形颜色和半径以及一个组合字符串中的"扇形关闭"字符串.编写一个创建两个Fan对象的Demo类.为第一个风扇分配以下值:speed:1000rpm,radius:12,color:blue和fan-state:on.将以下值分配给第二个风扇:速度:2000rpm,半径:5,颜色:蓝色和扇形状态:关闭.通过调用toString方法显示对象.

所以我继续上课,

包p2 ;

public class Demo {

public static void main(String[] args) {
    Fan f1 = new Fan(1000, true, 12, "blue");
    Fan f2 = new Fan(2000, false, 5, "blue");
    // 1000rpm, radius: 12, color: blue, and fan-state: on
    //speed: 2000rpm, radius: 5, color: blue, and fan-state: off

    System.out.println(f1);
    System.out.println("----------------------------");
    System.out.println(f2);
}
}
Run Code Online (Sandbox Code Playgroud)

包p2 ;

public class Fan {

private int speed;
private boolean on;
private double radius;
private String color;

public Fan()
{
    speed = 0; …
Run Code Online (Sandbox Code Playgroud)

java if-statement tostring

-2
推荐指数
2
解决办法
1565
查看次数

如何用__toString()方法返回不同的类型?

我们使用__toString()来返回类的默认值,如下所示:

<?php

class my
{
   public function __toString()
   {
      return "asdasd";
   }
}

?>
Run Code Online (Sandbox Code Playgroud)

它只返回字符串类型.但我想返回资源类型:

<?php

class my
{
   public function __toString()
   {
      return imagecreatefromjpeg("image.jpg");
   }
}

?>
Run Code Online (Sandbox Code Playgroud)

它不起作用.怎么做?是否有任何方法而不是__toString()或任何方式使用__toString?

php return tostring

-3
推荐指数
1
解决办法
879
查看次数

EditText.getText().toString()与其他字符串的比较失败

即使我填写了正确的引脚,Toast仍然拒绝接入访问.

我需要将用户锁定在自助服务终端模式应用中,只有使用正确的引脚,他们才能访问设置和退出选项.

            public void onClick(View v) {

            AlertDialog.Builder alert = new AlertDialog.Builder(FullscreenActivity.this);
            alert.setTitle("PIN:");
            //alert.setMessage("Message");

            final EditText pinEntry = new EditText(FullscreenActivity.this);
            alert.setView(pinEntry);
            alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    String pin = pinEntry.getText().toString().trim();
                    String secret = "0000";
                    if (pin == secret){
                        Toast.makeText(getApplicationContext(),"Access Approved", Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(getApplicationContext(),"Access Denied", Toast.LENGTH_SHORT).show();
                    }
                    Toast.makeText(getApplicationContext(),pin, Toast.LENGTH_SHORT).show();
                }
            });

            alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                }
            });
            alert.show();
        }
    });
Run Code Online (Sandbox Code Playgroud)

java string android tostring android-edittext

-3
推荐指数
1
解决办法
1728
查看次数

Enum.ToString可以支持像"X2"这样的精度说明符吗?

Enum.ToString(string)不支持直接使用精度说明符X2D5将填充应用于数值. 格式类似ToString("X")ToString("D")已实现且记录良好.当然,我可以明确地将其转换为int之前,因此使用为int实现的格式说明符将其转换为填充字符串.

我想知道是否有一些直接支持enum的这个功能,而不需要强制转换它们.乍一看似乎很奇怪,这不是直接实现的,因为它是为int或其他数字类型完成的.但也许我错过了一些更重要的东西,这些东西可以明确地解释说它没有像枚举那样完成?

public enum Number
{
    Ten = 10
}

Console.WriteLine(Number.Ten);                      //OK: Ten
Console.WriteLine(Number.Ten.ToString());           //OK: Ten
Console.WriteLine(Number.Ten.ToString("D"));        //OK: 10
Console.WriteLine(Number.Ten.ToString("D5"));       //Expected 00010 - Failed: System.FormatException, can only be "G","g","X","x","F","f","D" or 
Console.WriteLine(Number.Ten.ToString("X"));        //OK: 0000000A
Console.WriteLine(Number.Ten.ToString("X2"));       //Expected 0A - Failed: System.FormatException, can only be "G","g","X","x","F","f","D" or "d"
Console.WriteLine(10.ToString("X2"));               //OK: 0A
Console.WriteLine(10.ToString("D5"));               //OK: 00010
Console.WriteLine(((int)Number.Ten).ToString("X2"));//OK: 0A 
Run Code Online (Sandbox Code Playgroud)

接受答案的简短摘要:它没有明确表示,因为根据基础类型的大小,它已经被隐含地完成了.因此,如果你喜欢X2而不是X8只使用字节作为基础类型,ToString("X")并将表现得像ToString("X2").

c# enums tostring

-3
推荐指数
1
解决办法
253
查看次数

C++ 11中std :: to_string的奇怪输出

我有一小段C++代码:

#include <array>
#include <string>
#include <iostream>

int main() 
{
  std::string name = "mario";
  std::cerr << "Hello world! " + name + "\n";

  std::array<float, 4> arr = {12, 12.3, 13, 14};
  std::cerr << "first item is: " + std::to_string(arr.front()) << std::endl;
  std::cerr << "last item is: " + std::to_string(arr[-1]) << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

它编译并输出以下内容:

work ? c++ -std=c++11 -o hello_world hello.cpp
work ? ./hello_world
Hello world! mario
first item is: 12.000000
last item is: 0.000000
Run Code Online (Sandbox Code Playgroud)

但是,如果我注释掉前两行,如:

#include <array>
#include …
Run Code Online (Sandbox Code Playgroud)

c++ tostring stdstring c++11 stdarray

-3
推荐指数
1
解决办法
163
查看次数

为什么我的程序不打印它收到的数据而不是地址?

我创建了一个包含两个类的java程序.一个类(Main)包含传递到第二个类(Planning)的数据数组.第二个类(Planning)使用此数组为其变量的输入和输出赋值.代码如下所示:

////Main.java///
import java.util.ArrayList
public class Main{
public enum State{A, D, H};

Planning plan = new Planning[]{
      new Plan(new State[]{State.A,State.A,State.A,State.A}, new State[]{State.D,State.A,State.A,State.D,State.A,State.A})}
Run Code Online (Sandbox Code Playgroud)

另一个Class Planning.java看起来像这样:

public class Planning {


    Main.State[] input;
    Main.State[] output;
    Planning(Main.State[] input,Main.State[] output){
    this.input = input;
    this.output = output;

    System.out.println("The state is " + input);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我打印出"结尾处的输入"时,它会显示出来

[LMain $国家; @ 4e98f805

我希望它显示从main函数传递到它的数组.有人可以告诉我如何实现这一目标?

java arrays tostring output

-4
推荐指数
1
解决办法
78
查看次数

字符串未被识别为有效的布尔异常

我正在将dataRow值转换为布尔值但得到以下异常:

字符串未被识别为有效的布尔值

这是代码:

bool a = Convert.ToBoolean(row["ISMOVING"].ToString());
Run Code Online (Sandbox Code Playgroud)

row["ISMOVING"] 包含1

我究竟做错了什么?

c# boolean tostring type-conversion

-4
推荐指数
1
解决办法
3230
查看次数

为什么在没有C#参与继承的情况下可以覆盖ToString()方法?

请找到以下示例:

using System;

 class MyClass 
 {
   static int count = 0;
   int id;

   public MyClass() 
   {
     id = count;
     count++;
   }

 public override string ToString() 
 {
   return "MyClass object #" + id;
 }
}

 class Test 
 {
   static void Main() 
   {
     MyClass ob1 = new MyClass();
     MyClass ob2 = new MyClass();
     MyClass ob3 = new MyClass();
     Console.WriteLine(ob1);
     Console.WriteLine(ob2);
     Console.WriteLine(ob3);
   }
 }
Run Code Online (Sandbox Code Playgroud)

程序的输出如下所示:

MyClass对象#0
MyClass对象#1
MyClass对象#2

正如您在此处所见,方法ToString()在名为"MyClass"的类中被重写,但"MyClass"不是从任何类派生的,根本不存在继承.如果没有涉及继承如何使用'覆盖'?

如果我们将ToString()更改为任何其他方法名称说'HelloString()',如下面的代码片段所示:

 public class Program
 {
    public static void Main(string[] args)
    {            
        MyClass ob1 = …
Run Code Online (Sandbox Code Playgroud)

c# inheritance tostring

-5
推荐指数
1
解决办法
584
查看次数