Java:求字符串中邻接的数字为一个整体

 

public static void main(String[] args) {
		String strNumbers = "0123456789";//用来进行判断数字的

		System.out.println("请输入一个字符串:"); 
		String string = new Scanner(System.in).next(); //自定义输入 
		String[] strings = new String[string.length()];//自定义是字符串
		System.out.println("自定义的长度=>"+strings.length);
		//循环自定义的字符串,把相应的每个字符放入数组中
		for (int i = 0; i < string.length(); i++) {
			strings[i] = string.substring(i, i + 1);
		} 
		int length = 0;//定义索引下标 
		int sumInteter = 0;//计算整数
		boolean bool = true; 
		String[] strs = new String[string.length()];//再新建个数组,用来存放 当是连续数字时,把那个连续的数据当成一个数组
		//循环所有的字符串
		for (String str : strings) { 
			//把相应的字符串放入strNumbers中使用indexof的方法判断是否; 如果是就返回 相应索引下标,否则 返回-1
			int index = strNumbers.indexOf(str);
			if (index == -1) {//表示当前值不是数字
				strs[length] = str;//直接把当前的值 赋值 给  数组
				length++;//索引下标 自增
				bool = true; // 锁开启
			} else {//表示当前值是数字
				if (bool) { 
					strs[length] = str;
					length++;
					sumInteter++;
					bool = false;//锁关闭,使锁关闭的原因是当下一个字符是 也数字是运行下面else的操作
				} else {  //当前值和前一个值也是数字, 就运行这步
					//因为之前的索引自增了, 索引必须要-1  ,使用concat把数字链接到前一个值的尾部
					strs[length - 1] = strs[length - 1].concat(str);
					 
				}
			}
		}
		System.out.println("多少个整数"+sumInteter+"个");
		for (String str : strs) {
			if (str != null) {
				System.out.println(str);
			}
		}
		 
	}

  

posted @ 2017-08-10 11:57  Xiao_野猪  阅读(587)  评论(0编辑  收藏  举报