Java 为什么这段代码中有运行时错误?
我的40个字符串的penney游戏以运行时错误结束,有人能帮我理解为什么吗?代码只需要告诉字符串中的组合数 以下是一个例子: 输入:Java 为什么这段代码中有运行时错误?,java,string,runtime,substring,Java,String,Runtime,Substring,我的40个字符串的penney游戏以运行时错误结束,有人能帮我理解为什么吗?代码只需要告诉字符串中的组合数 以下是一个例子: 输入: 4 1 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 2 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
4 1
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 2
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
3
HHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTH
4 HTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT
输出:
1 0 0 0 0 0 0 0 38 2 38 0 0 0 0 0 0 0
3 4 7 6 4 7 4 5 1 4 6 3 4 5 3 6 5 6
这是我的代码:
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int t;
t=Integer.parseInt(br.readLine());
while((t--)!=0)
{
int N,i,j;
N=Integer.parseInt(br.readLine());
int c []={0,0,0,0,0,0,0,0};
String arr [] ={"TTT","TTH","THT","THH","HTT","HTH","HHT","HHH"};
String str,str1;
N=Integer.parseInt(br.readLine());
str=br.readLine();
for(i=0;i<=37;i++)
{
str1="";
str1=str.substring(i,i+3);
for(j=0;j<8;j++)
{
if(str1.equals(arr[j]))
{
c[j]++;
break;
}
}
}
System.out.print(N);
for(i=0;i<8;i++)
System.out.print(" "+c[i]);
System.out.println();
}
}
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
表意文字
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
int t;
t=Integer.parseInt(br.readLine());
而((t-)!=0)
{
int N,i,j;
N=Integer.parseInt(br.readLine());
int c[]={0,0,0,0,0,0,0};
字符串arr[]={“TTT”、“TTH”、“THT”、“THH”、“HTT”、“HTH”、“HHT”、“HHH”};
str序列,str1;
N=Integer.parseInt(br.readLine());
str=br.readLine();
对于(i=0;i这里是您的程序的简化版本。现在显示输入字符串前面的迭代编号:
import java.util.*;
import java.lang.*;
import java.io.*;
public class HelloWorld{
public static void main(String []args) throws java.lang.Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please enter number of iterations : ");
int t = Integer.parseInt(br.readLine());
for(int counter=1; counter<= t; counter++)
{
int c []={0,0,0,0,0,0,0,0};
String arr [] = {"TTT","TTH","THT","THH","HTT","HTH","HHT","HHH"};
System.out.print(counter + " ");
String str = br.readLine();
for(int i=0; i<str.length()-3; i++)
{
String str1 = str.substring(i,i+3);
for(int j=0; j<8; j++)
{
if(str1.equals(arr[j]))
{
c[j]++;
break;
}
}
}
for(int i=0;i<8;i++){
System.out.print(" "+c[i]);
}
System.out.println();
}
}
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
公共类HelloWorld{
公共静态void main(字符串[]args)引发java.lang.Exception{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
System.out.print(“请输入迭代次数:”);
int t=Integer.parseInt(br.readLine());
对于(int counter=1;counter,这里是您的程序的简化版本。现在显示输入字符串前面的迭代编号:
import java.util.*;
import java.lang.*;
import java.io.*;
public class HelloWorld{
public static void main(String []args) throws java.lang.Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Please enter number of iterations : ");
int t = Integer.parseInt(br.readLine());
for(int counter=1; counter<= t; counter++)
{
int c []={0,0,0,0,0,0,0,0};
String arr [] = {"TTT","TTH","THT","THH","HTT","HTH","HHT","HHH"};
System.out.print(counter + " ");
String str = br.readLine();
for(int i=0; i<str.length()-3; i++)
{
String str1 = str.substring(i,i+3);
for(int j=0; j<8; j++)
{
if(str1.equals(arr[j]))
{
c[j]++;
break;
}
}
}
for(int i=0;i<8;i++){
System.out.print(" "+c[i]);
}
System.out.println();
}
}
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
公共类HelloWorld{
公共静态void main(字符串[]args)引发java.lang.Exception{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
System.out.print(“请输入迭代次数:”);
int t=Integer.parseInt(br.readLine());
对于(int counter=1;countersorry…刚才添加了获取的错误抱歉…刚才添加了获取的错误不确定N=Integer.parseInt(br.readLine())的用途是什么;问题中要求每个字符串前面都有一个数字……比如第一个字符串1,第二个字符串2等等……您面临的错误与内存错误有关。我不明白您的代码在做什么,所以我从头开始。但现在代码就是您要问的。请让我知道这是否有效对于您来说,不确定N=Integer.parseInt(br.readLine())的用途是什么;问题中要求每个字符串前面都有一个数字……比如第一个字符串1,第二个字符串2等等……您面临的错误与内存错误有关。我不明白您的代码在做什么,所以我从头开始。但现在代码就是您要问的。请让我知道这是否有效为你做国王,