【问题标题】:Pushing a non-repeating string into stack and printing its size in java将非重复字符串推入堆栈并在 java 中打印其大小
【发布时间】:2022-01-02 08:42:38
【问题描述】:

如您所见,我在这里遇到了一个问题,因为我试图使用两个循环将非重复字符串插入到我的堆栈中,但是在编译时我得到了这个错误 - 线程“main”java.lang.Error 中的异常:未解决的编译问题: Stack类型中的push(String)方法不适用于参数(char)

在此处输入代码

import java.util.*;
public class Qno3String {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String inp=sc.nextLine();
        Stack<String> st = new Stack<>();
        for(int i =0;i<inp.length();i++) {
            for(int j = i;j<inp.length();j++) {     
                if(inp.charAt(i) == inp.charAt(j)) {
                    st.push(inp.charAt(i));
                }
            }
        
        }
        System.out.println(st.size());
    }

}

【问题讨论】:

  • 这只是意味着你不能推送一个字符。 charAt 返回一个字符,您的堆栈需要一个字符串。你认为会发生什么?

标签: java stack


【解决方案1】:

错误消息告诉你问题:推送一个整数,而不是一个字符。

st.push((int)inp.charAt(i));

注意错误信息和你的代码是矛盾的:

Stack<Integer> st = new Stack<>();

但是:

方法 push(String)…

【讨论】:

  • @user16320675 错误信息和代码有点矛盾...
猜你喜欢
  • 2011-04-22
  • 1970-01-01
  • 2018-12-30
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
  • 2015-02-08
相关资源
最近更新 更多