Json 创建MergeSort算法源代码,程序在获取输入后终止

Json 创建MergeSort算法源代码,程序在获取输入后终止,json,algorithm,Json,Algorithm,编辑:了解了如何输入我的值,但程序在接受我的值后终止,如下所示。有没有关于为什么会这样做的信息 { “inList” : [ 5, 35, 1, 272, 12, 0, -2, 12 ] } 你知道我做错了什么吗 这是密码 import java.util.*; public class JSON_Test{ public static void main(String args[]){ Scanner sc = new Scanner(System.in);

编辑:了解了如何输入我的值,但程序在接受我的值后终止,如下所示。有没有关于为什么会这样做的信息

{ “inList”  : [ 5, 35, 1, 272, 12, 0, -2, 12 ] }
你知道我做错了什么吗

这是密码

   import java.util.*;
   public class JSON_Test{
   public static void main(String args[]){
   Scanner sc = new Scanner(System.in);
   System.out.println("** Enter input in Single line **");
   String input = sc.nextLine();
   //System.out.println(input);
   StringBuffer name = new StringBuffer();
   StringBuffer list_str = new StringBuffer();
   int[] original;
   int name_in=0;
   boolean name_flag = false;
   int i = 0;
   int len = input.length();

   while(i<len && input.charAt(i) == ' '){
       i++;
   }

   if(i==len){
       System.out.println("Incorrect input !!");
       System.exit(0);
   }
   if(input.charAt(i) == '{'){
       i++;
       while( i<len && input.charAt(i) == ' '){
       i++;
       }
       if(i==len){
       System.out.println("Incorrect input !!");
       System.exit(0);
       }
       if(input.charAt(i) == '\"'){
           i++;
           while(i<len && input.charAt(i) != '\"'){
               name.append(input.charAt(i));
               i++;
           }
           if(i==len){
               System.out.println("Incorrect input !!");
               System.exit(0);
           }
           i++;
           while( i<len && input.charAt(i) == ' '){
           i++;
           }
           if(i==len){
               System.out.println("Incorrect input !!");
               System.exit(0);
           }
           if(input.charAt(i) ==':'){
               i++;
               while( i<len && input.charAt(i) == ' '){
               i++;
               }
               if(i==len){
                   System.out.println("Incorrect input !!");
                   System.exit(0);
               }
               if(input.charAt(i)=='['){
                   i++;
                   if(i==len){
                       System.out.println("Incorrect input !!");
                       System.exit(0);
                   }
                   while(i<len && input.charAt(i) != ']'){
                       list_str.append(input.charAt(i));
                       i++;
                   }
                   StringTokenizer st = new               StringTokenizer(list_str.toString(),",");
                   original = new int[st.countTokens()];
                   while (st.hasMoreTokens()) {
                try{
                    original[name_in] = Integer.parseInt(st.nextToken());
                    name_in++;
                }
                catch(Exception e){
                    System.out.println("Incorrect Input. \n\t Hint : Can't find \"numbers\" in the input");
                    System.exit(0);
                }
                }
                i++;
                while( i<len && input.charAt(i) == ' '){
                       i++;
                   }
                if( i >= len || input.charAt(i) != '}' ){
                    System.out.println("Incorrect Input. \n\t Hint :  Closing Tag");
                    System.exit(0);
                }
                Merge mms = new Merge();
                long startTime = System.currentTimeMillis();
           mms.sort(original);
           long stopTime = System.currentTimeMillis();
               long elapsedTime = stopTime - startTime;
           System.out.print("{ \"outList\"\t:[");
           for(int j=0; j<original.length;j++){
            System.out.print(original[j]);
            if(j != original.length-1){
               System.out.print(",");
            }
           }
           System.out.print("],\n \"algorithm\" : \"Mergesort\",\n");
           System.out.print(" \"timeMs\" : "+ elapsedTime +" } ");
               }
           }
       }
       else{
           System.out.println("Incorrect Input. \n\t Hint : Can't find \"inlist\" Starting quote ' \" ' ");
           System.exit(0);
       }
   }
   else{
       System.out.println("Incorrect Input. \n\t Hint : Can't find  \"JSON list\" Starting brace - \"{\" ");
       System.exit(0);
        }
       }
     }
  class Merge{
  private int[] array;
  private int[] tempArr;
  private int length;
  Merge(){

   }

 public void sort(int inputArr[]) {
 this.array = inputArr;
 this.length = inputArr.length;
 this.tempArr = new int[length];
 MergeSort_Partition(0, length - 1);
 }

 private void MergeSort_Partition(int low, int high) {

  if (low < high) {
   int middle = low + (high - low) / 2;
 MergeSort_Partition(low, middle);
 MergeSort_Partition(middle + 1, high);
sortwith_Parts(low, middle, high);
    }
   }

   private void sortwith_Parts(int low, int middle, int high) {

  for (int i = low; i <= high; i++) {
 tempArr[i] = array[i];
 }
    int i = low;
    int j = middle + 1;
    int k = low;
    while (i <= middle && j <= high) {
   if (tempArr[i] <= tempArr[j]) {
   array[k] = tempArr[i];
       i++;
    } 
    else {
    array[k] = tempArr[j];
     j++;
      }
    k++;
       }
   while (i <= middle) {
   array[k] = tempArr[i];
   k++;
  i++;
       }
    }
  }
import java.util.*;
公共类JSON_测试{
公共静态void main(字符串参数[]){
扫描仪sc=新的扫描仪(System.in);
System.out.println(“**在单行中输入**”);
字符串输入=sc.nextLine();
//系统输出打印项次(输入);
StringBuffer name=新的StringBuffer();
StringBuffer列表_str=new StringBuffer();
int[]原件;
int name_in=0;
布尔名称_标志=false;
int i=0;
int len=input.length();

当我搜索JavaJSON时,google说:这就是你需要的。(我从来没有在java上使用过JSON)。如果这不起作用,请不要尝试编写自己的json库。感谢您的回复,我只需要这样做,因为这是我的一个类的编程分配。我会先进行拆分,然后再进行拆分,而不是逐字符迭代。按一些字符拆分,然后删除不必要的字符。