public static List<INestedInteger> str2list(String s) {
		List<INestedInteger> result = new ArrayList<>();
		String[] splits = s.split(",");
		Stack<List<INestedInteger>> stack = new Stack<>();
		for (String split : splits) {
			int i = 0;
			while (i < split.length()) {
				char c = split.charAt(i);
				if (c == '[') {
					List<INestedInteger> list = new ArrayList<>();
					stack.push(list);
					i++;
				} else if (c == ']') {
					List<INestedInteger> list = stack.pop();
					if (stack.isEmpty())
						result = list;
					else
						stack.peek().add(new MyNestedInteger(list));
					i++;
				} else {
					// digit
					int start = i;
					while (i < split.length() && split.charAt(i) >= '0' && split.charAt(i) <= '9')
						i++;
					int num = Integer.valueOf(split.substring(start, i));
					stack.peek().add(new MyNestedInteger(num));
				}
			}
		}
		return result;
	}