Java 中的".class"错误

'.class.' error in java

本文关键字:错误 class Java 中的      更新时间:2023-10-16

我尝试了一个在C++上运行良好的问题;这是C++实现。

#include<iostream>
#include<string>
#include<string.h>
using namespace std;
int main()
{
int t;
char str[1000100];
char num[1010];
cin>>t;
while(t--)
{
    cin>>num;
    cin>>str;
    int a=strlen(str);
    int b=strlen(num);
    int x=0;
    int flag=0;
    int m=0;
    for(int j=0;j<2*b;j++)
    {
        if(m==b)
        {
        flag=1;
        m--;
        }
        if(m==0)
        {
        flag=0;
        }

        num[j]=num[m];
        if(flag==0)
        m++;
        if(flag==1)
        m--;
    }
    for(int i=0;i<a;i++)
    {
        if(x==2*b)
            x=0;
        if((str[i]-(num[x]-'0'))<97)
        str[i]=char(str[i]-(num[x]-'0')+26);
         else
         str[i]=char(str[i]-(num[x]-'0'));
        x++;

     }
     cout<<str<<endl;
    //cout<<num;
}
return 0;
  }

这是我的 Java 实现。

import java.util.Scanner;
class sngmsg
{
public static void main(String[] s)
{
    Scanner sc=new Scanner(System.in);
    int t;
    /*char[] str;
    str = new char[1000100];
    char[] num=new char[1010];*/
    String str;
    String num;
    char[] num1=new char[1010];
    char[] str1=new char[1000100];
    t=sc.nextInt();
    for(int l=0;l<t;l++)
    {
        num=sc.next();
        str=sc.nextLine();
        int a=str.length();
        for(int c=0;c<a;c++)
            str1[c]=str.charAt(c);
    int b=num.length();
    int x=0;
    int flag=0;
    int m=0;
    for(int j=0;j<2*b;j++)
    {
        if(m==b)
        {
        flag=1;
        m--;
        }
        if(m==0)
        {
        flag=0;
        }

        num1[j]=num.charAt(m);
        if(flag==0)
        m++;
        if(flag==1)
        m--;
    }
    for(int i=0;i<a;i++)
    {
        if(x==2*b)
        x=0;
        if(int(str1[i])-(num1[x])<97)
        str1[i]=char(int(str1[i])-num1[x])+26);
        else
        str1[i]=char(str1[i]-(num1[x]-'0'));
        x++;

    }
    }
}
}

在本节中

if(int(str1[i])-(num1[x])<97)
str1[i]=char(int(str1[i])-num1[x])+26);
else
str1[i]=char(str1[i]-(num1[x]-'0'));
x++;

它给出了一个错误:

unexpected type
required:value
found: class
'.class' expected
; expected

以及这些行中的类似错误。有什么帮助吗?

应该是

if((int)(str1[i])-(int)(num1[x])<97)

强制转换运算符应该在它们上面有 (),例如 (int

) 1 和 (char) 'a' 而不是 int(1) 或 char('a')

intchar不是函数,而是原语。

str1[i]=char(int(str1[i])-num1[x])+26)

您正在尝试将int用作函数。你对它有什么期望?

通常,您将有一个带有main方法的公共类。似乎您正在编译您的类并且无法执行它。这样做是为了解决您的问题:

1 - 使用您的类名创建一个文件,例如"MyClass.java"

2 - 您的班级声明需要公开:

public class MyClass {
    // your code here
}

3 - 将 main 方法放在创建的类中:

public class MyClass {
    public static void main( String[] args ) {
        // your code here
    }
}

4 - 编译它(javac MyClass.java)

5 - 执行它:java MyClass

您的代码似乎也存在一些问题。如果要强制转换某些基元或引用类型,则需要将所需的类型放在括号内。像这样:

// a char
char c = 'a';
// casting that char to an integer
int i = (int) c;

让我知道它是否有效。

文件开头缺少包名称。此外,该类应该是公开的。

package something.somethingelse;
import java.util.Scanner;
public class sngmsg{
相关文章: