toString不遵循正确的格式

时间:2018-04-16 23:45:09

标签: java queue push tostring

我在调用Journal方法时遇到问题而且我的代码没有按照正确的格式进行操作,这就是我试图调用它的方式。

<v-btn
        type="submit"
        data-test="btn-identity"
        block
        large
        :disabled="!validEmail"
        color="primary">{{ $t('button.identity') }}
      </v-btn>


<v-text-field
  v-validate="'required|email'"
  v-model="form.userId"
  :label="$t('placeholder.userId')"
  :error-messages="errors.collect('email')"
  data-vv-name="email"
  required
  autofocus
/>

watch: {
    "form.userId": function (newId, oldId) {
          this.$validator.validateAll().then((result) => {
              this.validEmail = result; // use a separate method to set validEmail here 
      })
    }
},

这是我要将其格式化为的toString:

toString

有没有更好的方法来调用它,以便打印出正确的输出?

正确的格式应该是[a,b,c,d],但我得到的只是[abcd]。

编辑,添加到String方法

3 个答案:

答案 0 :(得分:1)

如果您尝试使用str中逗号之间的值作为推送到queue的值,那么您不需要调用toString()。

这对你有用吗?

public static void loadQueue(Queue<String> queue, String str) {
    if (null == queue) throw new IllegalArgumentException("Expected non-null queue");
    if (null == str) throw new IllegalArgumentException("Expected non-null str");

    String elementArray[] = str.split(",");

    for(int i = 0; i < elementArray.length; i++){
        queue.push(elementArray[i]);
    }

}

答案 1 :(得分:1)

我无法判断你的toString覆盖哪个类,但它不会出现在字符串或队列中。

Queue.toString可能不是你想要的。是否有某些原因要覆盖toString而不是仅使用其他名称的方法?

技术#1 将所有方法放在现有的类

public String queueToString(Queue<String> queue) {
    String str = "[ ";

    if ( !isEmpty() ) {
        for (int i = 0; i < queue.length - 1; i++){
            str += queue[i] + ", ";
        }

        str += queue[queue.length - 1] + " ";
    }
    str += "]";

    return str;
}

...

public static void loadQueue(Queue<String> queue, String str) {

    String elementArray[] = str.split(",");

    for(int i = 0; i < elementArray.length; i++){
      queue.push(elementArray[i]);
    }

    System.out.println( queueToString(queue) );

}

技术#2 为队列创建自定义类并修改行为。

public class MyStringQueue extends Queue<String> 
{
    @Override
    /* override the toString method here */
}

...

/* in your class, create an use a MyStringQueue instead of Queue<String> */
public static void loadQueue(MyStringQueue  queue, String str) {

    String elementArray[] = str.split(",");

    for(int i = 0; i < elementArray.length; i++){
      queue.push(elementArray[i]);
    }

    System.out.println( queue.toString() );

}

答案 2 :(得分:-1)

我让它上班但我必须做以下事情:

public static void loadQueue(Queue<String> queue, String str) {

     for(int i = 0; i < str.length(); i++){
            queue.push(Character.toString(str.charAt(i)));
        }

有没有更好的解释为什么这有效,但我的其他方法呢?