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);
			}
		}

	}

  

时间: 2024-10-06 22:59:51

java求字符串中连续的数字为一个整体并返会连续的数字和共有多少个整数的相关文章

Java 求字符串中出现频率最高字符

前段时间接触的这个题目,大体理解了,还有些小地方仍待进一步品味,暂且记下. import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; /* * 查找字符串中出现频率最高的字符 * * 主要思路:先将字符

[2013百度软件研发笔试题] 求字符串中连续出现同样字符的最大值

题目完整描写叙述为:用递归的方式实现一个求字符串中连续出现同样字符的最大值.如aaabbcc,连续出现a的最大值为3,abbc,连续出现字符最大的值为2. 下面是我想出来的方法: #include <iostream> using namespace std; #define MAX(a, b) (a) > (b) ? (a) : (b) int Get(char *s, int n, int m)  //字符指针, 当前最长串, max最长串 {     if(*(s+1) == '\

[2013百度软件研发笔试题] 求字符串中连续出现相同字符的最大值

题目完整描述为:用递归的方式实现一个求字符串中连续出现相同字符的最大值,如aaabbcc,连续出现a的最大值为3,abbc,连续出现字符最大的值为2. 以下是我想出来的方法: #include <iostream> using namespace std; #define MAX(a, b) (a) > (b) ? (a) : (b) int Get(char *s, int n, int m)  //字符指针, 当前最长串, max最长串 {     if(*(s+1) == '\0'

java从字符串中提取数字

1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只需要直接进入该页面然后直接找到第一条或者最后一条数据即可. 2.例子: 界面: javs代码: /** * java从字符串中提取数字 * str:传递过来的字符串 */ public static List<String> getNUm(String str){ str.trim(); //St

求字符串中最大数字

public String GetMaxLenNumber(String inputStr) { //将字符串中的字符存放到数组中,便于处理 char[] strArray = inputStr.toCharArray(); //开始处理的位置 int startPos = 0; //当前处理的字符长度 int tempCount = 0; //数字的最长长度 int maxLen = 0; //数组的总长度 int len = strArray.length; int pos = 0; whi

java截取字符串中的数字

java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法. 1 String类提供的方法: package 测试练习; import java.util.*; public class get_StringNum { /**  *2012.6.2  */ public static v

HDU 3518 Boring counting(后缀数组啊 求字符串中不重叠的重复出现至少两次的子串的个数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3518 Problem Description 035 now faced a tough problem,his english teacher gives him a string,which consists with n lower case letter,he must figure out how many substrings appear at least twice,moreover

java统计字符串中字符及子字符串个数

import java.util.Scanner;public class Counter { static Scanner scanner = new Scanner(System.in); public static void count(String s) { int low, upper, num, others; low = upper = num = others = 0; for (int i = 0; i < s.length(); i++) { if (Character.is

Java提取字符串中的手机号

java通过正则表达式提取字符串中的手机号,简单快速方便,能提取多个手机号 public String getTelnum(String sParam){ if(sParam.length()<=0) return ""; Pattern pattern = Pattern.compile("(1|861)(3|5|8)\\d{9}$*"); Matcher matcher = pattern.matcher(sParam); StringBuffer bf