[英]'.class.' error in java
我嘗試了一個在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)
cast運算符應該對它們有(),如(int)1和(char)'a'而不是int(1)或char('a')
int
和char
不是函數,而是原語。
str1[i]=char(int(str1[i])-num1[x])+26)
您正在嘗試將int
用作函數。 你對它有什么期望?
通常,您將使用主要方法進行公開課。 您似乎正在編譯您的類,但您無法執行它。 這樣做可以解決您的問題:
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{
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.