首页 > 解决方案 > 我该如何解决:找到变量所需值(来自教科书示例)

问题描述

所以我目前正在做一个任务,我要做一个程序来指定用户给出的正文的一些特征。

为了学习的目的,我使用了一本推荐用于课程的书中的例子,它是在线的,所以我认为这将是一种更快的方法来获得我的问题的答案。

我得到的问题是: 错误:(16、33)java:需要意外类型:找到变量:值

所以代码如下:


import javax.swing.*;
import java.util.*;


public class Text {

    public static void main(String[] arg) {
        String sentence = JOptionPane.showInputDialog("Enter a sentence: ");
        String letter = JOptionPane.showInputDialog("Enter a letter: ");

        int instances = 0;
        int place;
        for (place = 0; place < sentence.length(); place=place+1) {
            if (sentence.charAt (place) = letter) //searches for letter in sentence
                instances= instances + 1;
        }
            JOptionPane.showMessageDialog(null,instances);
    }

}

这段代码和教科书中的例子的唯一区别是我添加了字母变量,在例子中代码搜索''(空格)。但是从我收集到的字母和''都在字符串中,即使字母是一个变量。

感谢您的帮助,谢谢!

标签: java

解决方案


首先,您没有使用比较运算符==,而是使用了一个简单=的赋值运算符。

其次,您试图将一个字符(类型char)与一个字母(类型String)进行比较,而这不能通过==操作员完成。

您需要以某种方式将您的字母转换为字符,例如使用charAt(0).

import javax.swing.*;
import java.util.*;


public class Text {

    public static void main(String[] arg) {
        String sentence = JOptionPane.showInputDialog("Enter a sentence: ");
        String letter = JOptionPane.showInputDialog("Enter a letter: ");

        int instances = 0;
        int place;
        for (place = 0; place < sentence.length(); place=place+1) {
            if (sentence.charAt (place) == letter.charAt(0)) //2 changes to your code are in this line.
                instances= instances + 1;
        }
            JOptionPane.showMessageDialog(null,instances);
    }

}

推荐阅读