Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么这段代码中有运行时错误?_Java_String_Runtime_Substring - Fatal编程技术网

Java 为什么这段代码中有运行时错误?

Java 为什么这段代码中有运行时错误?,java,string,runtime,substring,Java,String,Runtime,Substring,我的40个字符串的penney游戏以运行时错误结束,有人能帮我理解为什么吗?代码只需要告诉字符串中的组合数 以下是一个例子: 输入: 4 1 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 2 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

我的40个字符串的penney游戏以运行时错误结束,有人能帮我理解为什么吗?代码只需要告诉字符串中的组合数

以下是一个例子:

输入:

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等等……您面临的错误与内存错误有关。我不明白您的代码在做什么,所以我从头开始。但现在代码就是您要问的。请让我知道这是否有效为你做国王,