Java 文字中的字符位置

Java 文字中的字符位置,java,dialog,Java,Dialog,我需要以下代码的帮助。我想使用代码打印一个对话框,输出文本中字符的第一个位置和最后一个位置。代码运行,但只输出“未找到” 导入javax.swing.*; 公共类字符计数器{ 公共静态对象findFirstAndLast(字符串文本、字符串文本) { int n=text.length(); int first=-1,last=-1; 对于(int i=0;i=1){ char ch=textch.charAt(0);//第一个字符 对于(int i=0;i=1){ char ch=textc

我需要以下代码的帮助。我想使用代码打印一个对话框,输出文本中字符的第一个位置和最后一个位置。代码运行,但只输出“未找到”


导入javax.swing.*;
公共类字符计数器{
公共静态对象findFirstAndLast(字符串文本、字符串文本)
{
int n=text.length();
int first=-1,last=-1;
对于(int i=0;i对于(int i=0;i是否允许使用标准方法
String#contains
String#indexOf
String#lastIndexOf

如果是:

字符串文本=。。。;
字符串子字符串=。。。;
if(text.contains(子字符串)){
System.out.println(“第一次出现=“+text.indexOf(子字符串));
System.out.println(“上次出现=“+text.lastIndexOf(子字符串));
}否则{
System.out.println(“未找到”);
}

是否允许使用标准方法
String#contains
String#indexOf
String#lastIndexOf

如果是:

字符串文本=。。。;
字符串子字符串=。。。;
if(text.contains(子字符串)){
System.out.println(“第一次出现=“+text.indexOf(子字符串));
System.out.println(“上次出现=“+text.lastIndexOf(子字符串));
}否则{
System.out.println(“未找到”);
}
另外,代码行
text.charAt(i)=textch
似乎生成了一个错误 “==”不能应用于字符

这是因为您试图将
char
值与
String
值(存储在
textch
中)进行比较

此外,还可以使用和函数分别查找第一个和最后一个位置

演示:

import javax.swing.JOptionPane;

public class Main {
    public static void main(String[] args) {
        String text = JOptionPane.showInputDialog("Enter text").toLowerCase();
        String textch = JOptionPane.showInputDialog("Enter character").toLowerCase();
        int amountOFC = 0;
        if (textch.length() >= 1) {
            char ch = textch.charAt(0);// First character
            for (int i = 0; i < text.length(); i++) {
                if (text.charAt(i) == ch) {
                    amountOFC++;
                }
            }
            JOptionPane.showMessageDialog(null,
                    "Texten hade " + text.length() + " tecken varav " + amountOFC + " var " + textch);
            JOptionPane.showMessageDialog(null,
                    "First position is " + text.indexOf(ch) + ", Last position is " + text.lastIndexOf(ch));
        }
    }
}
import javax.swing.JOptionPane;
公共班机{
公共静态void main(字符串[]args){
String text=JOptionPane.showInputDialog(“输入文本”).toLowerCase();
String textch=JOptionPane.showInputDialog(“输入字符”).toLowerCase();
int amountOFC=0;
如果(textch.length()>=1){
char ch=textch.charAt(0);//第一个字符
对于(int i=0;i
另外,代码行
text.charAt(i)=textch
似乎生成了一个错误 “==”不能应用于字符

这是因为您试图将
char
值与
String
值(存储在
textch
中)进行比较

此外,还可以使用和函数分别查找第一个和最后一个位置

演示:

import javax.swing.JOptionPane;

public class Main {
    public static void main(String[] args) {
        String text = JOptionPane.showInputDialog("Enter text").toLowerCase();
        String textch = JOptionPane.showInputDialog("Enter character").toLowerCase();
        int amountOFC = 0;
        if (textch.length() >= 1) {
            char ch = textch.charAt(0);// First character
            for (int i = 0; i < text.length(); i++) {
                if (text.charAt(i) == ch) {
                    amountOFC++;
                }
            }
            JOptionPane.showMessageDialog(null,
                    "Texten hade " + text.length() + " tecken varav " + amountOFC + " var " + textch);
            JOptionPane.showMessageDialog(null,
                    "First position is " + text.indexOf(ch) + ", Last position is " + text.lastIndexOf(ch));
        }
    }
}
import javax.swing.JOptionPane;
公共班机{
公共静态void main(字符串[]args){
String text=JOptionPane.showInputDialog(“输入文本”).toLowerCase();
String textch=JOptionPane.showInputDialog(“输入字符”).toLowerCase();
int amountOFC=0;
如果(textch.length()>=1){
char ch=textch.charAt(0);//第一个字符
对于(int i=0;i
错误是什么
text.charAt(i)=textch
产生错误,因为
textch
是字符串,而
charAt()
返回一个
char
。这些是不同的类型,你不能像你试图做的那样将它们与
=
进行比较。在这种情况下@JustAnotherDeveloper有什么选择?错误是什么
text。charAt(i)=textch
产生错误,因为
textch
是字符串,而
charAt()
返回一个
char
。这些是不同的类型,你不能像你想做的那样将它们与
=
进行比较。在这种情况下@JustAnotherDeveloper有什么选择?谢谢。这很好。谢谢。这很好。这很好。这很好。这很好。谢谢。这很好。谢谢