java統計個數
㈠ 編寫java程序統計字元個數。
public static void main(String[] args) {
// TODO Auto-generated method stub
int abcCount=0;//英文字母個數
int spaceCount=0;//空格鍵個數
int numCount=0;//數字個數
int otherCount=0;//其他字元個數
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
char[] ch = str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isLetter(ch[i])){
//判斷是否字母
abcCount++;
}
else if(Character.isDigit(ch[i])){
//判斷是否數字
numCount++;
}
else if(Character.isSpaceChar(ch[i])){
//判斷是否空格鍵
spaceCount++;
}
else{
//以上都不是則認為是其他字元
otherCount++;
}
}
System.out.println("字母個數:"+abcCount);
System.out.println("數字個數:"+numCount);
System.out.println("空格個數:"+spaceCount);
System.out.println("其他字元個數:"+otherCount);
㈡ Java 統計輸入正數個數
import java.util.Scanner;
import java.util.regex.*; //Java使用正表達式必須導入此包
public class test{
private static int count = 0;//統計正整數出現的次數
//使用正則表達式判斷是否是整數(正數、負數和0)
private static boolean isNumber(String str){
return str.matches("^(0|[1-9][0-9]*|-[1-9][0-9]*)$");
}
//遞歸實現無限循環
private static void input(){
try { //加try...catch就是為了處理一個數字輸入過長產生的異常
System.out.print("請輸入一個整數:");
String inputNum = new Scanner(System.in).next();
if (isNumber(inputNum)==false) {//當輸入不是整數的時候結束游戲
System.out.println("輸入錯誤,游戲結束!");
}else if(count>2147483647||Integer.parseInt(inputNum)>Integer.MAX_VALUE||Integer.parseInt(inputNum)<Integer.MIN_VALUE){//當數字超過最大允許個數的時候提示
System.out.println("數字個數超出允許范圍!");
}else if(Integer.parseInt(inputNum)>0){
count++;
input(); //遞歸調用
}else{
System.out.println("正整數有"+count+"個!");
}
} catch (Exception e) {
System.out.println("數字個數超出允許范圍!");
}
}
public static void main(String[] args) {
input();
}
}
㈢ java8 統計字元串字母個數的幾種方法(有你
importjava.util.HashMap;
importjava.util.Map;
publicclassDemo{
publicstaticvoidmain(String[]args){
Stringstr="abcabc哈哈cde";
Map<Character,Integer>map=newHashMap<>();
for(charc:str.toCharArray()){
Integercount=map.get(c);
if(count==null){
map.put(c,1);
}else{
map.put(c,count+1);
}
}
System.out.println("字元 次數");
for(Map.Entry<Character,Integer>entry:map.entrySet()){
System.out.println(entry.getKey()+" "+entry.getValue());
}
}
}
㈣ java統計數組中連續元素出現的個數
int[]nums=newint[]{0,2,3,7,8,9,10,12};
intcount=0;
for(inti=0;i<nums.length-1;i++){
if(nums[i]==nums[i+1]-1){
System.err.println("符合《《"+nums[i]);
count++;
}elseif(i>0){
if(nums[i]-1==nums[i-1]){
System.err.println("符合《《"+nums[i]);
count++;
}
}
}
System.err.println(count);
//不知道你怎麼算的5,我理解的實現算出來是6啊
㈤ Java編程,輸入n和相應的n個數,統計輸出n個數中負數、零和正數的個數。
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入要統計數據的個數,n=");
int n = sc.nextInt();
int sum_zero = 0;
int sum_positive = 0;
int sum_negative = 0;
int temp = 0;
System.out.println("下面請依次請輸入" + n + "個數:");
for (int i = 1; i <= n; i++) {
System.out.println("第" + i + "個數=");
temp = sc.nextInt();
if (temp < 0) {
sum_negative++;
} else if (temp > 0) {
sum_positive++;
} else {
sum_zero++;
}
}
System.out.println("正數個數=" + sum_positive);
System.out.println("負數個數=" + sum_negative);
System.out.println("零的個數=" + sum_zero);
}
}
㈥ java中 如何統計一段字元串中相同字元的個數
通過循環遍歷字元串,然後一個個的比較,記下相同字元的個數就行了。代碼如下:
importjava.util.Scanner;
importjava.util.TreeMap;
/**
*從鍵盤輸入16位長整數,編程統計每個數字出現的個數
*@authoryoung
*
*/
publicclassCharMapDemo{
//統計數字或者字元出現的次數
publicstaticTreeMap<Character,Integer>Pross(Stringstr){
char[]charArray=str.toCharArray();
TreeMap<Character,Integer>tm=newTreeMap<Character,Integer>();
for(intx=0;x<charArray.length;x++){
if(!tm.containsKey(charArray[x])){
tm.put(charArray[x],1);
}else{
intcount=tm.get(charArray[x])+1;
tm.put(charArray[x],count);
}
}
returntm;
}
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
// System.out.println("請輸入一個長整數:");
// inttemp=sc.nextInt();
// Stringstr=String.valueOf(temp);
// TreeMap<Character,Integer>tm=Pross(str);
// System.out.println(tm);
System.out.println("請輸入一個字元串:");
Stringstr=sc.nextLine();
TreeMap<Character,Integer>tm=Pross(str);
System.out.println(tm);
}
}
㈦ 統計一個整數中數字的個數 java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("輸入:");
int repeat = 0;
String str = scanner.nextLine();// 獲得鍵盤輸入
try {// 撲捉非法字元
repeat = Integer.parseInt(str);// 將字元串轉換成整型,得到repeat
int number = 0;
if (repeat > 0) {
int[] data = new int[repeat];
for (int i = 0; i < repeat; i++) {
str = scanner.nextLine();// 獲得鍵盤輸入
try {
number = Integer.parseInt(str);// 將字元串轉換成整型,得到n
} catch (Exception e) {
System.out.println("Error Input!");
}
data[i] = number;
}
System.out.println("輸出");
for (int i = 0; i < repeat; i++) {
countdigit(data[i], 2);
}
}
} catch (Exception e) {
System.out.println("Error Input!");
}
}
private static void countdigit(int number, int i) {
// TODO Auto-generated method stub
int count = 0;
boolean finishFlag = false;
number = (number > 0 ? number : -1 * number);
while (!finishFlag) {
if (number / 10 == 0) {
finishFlag = true;
}
if ((int) (number - (number / 10) * 10) == i) {
count++;
}
number /= 10;
}
System.out.println("count=" + count);
}
㈧ java 統計字元串中字母的個數,如何修改
importjava.util.Scanner;
/**
*統計字元串中數字,字母,空格,其他字元的個數
*@authorAdministrator
*
*/
publicclassData01{
publicstaticvoidmain(String[]args){
intenglishCount=0;//英文字母個數
intspaceCount=0;//空格個數
intnumCount=0;//數字個數
intotherCount=0;//其他字元個數
Scannersc=newScanner(System.in);
System.out.println("請您輸入一行字元:");
Stringstr=sc.nextLine();//取得控制台輸入的一行字元
char[]ch=str.toCharArray();//把取道的字元串變成一個char數組
for(inti=0;i<ch.length;i++){
if(Character.isLetter(ch[i])){
//判斷是否為字母
englishCount++;
}elseif(Character.isSpaceChar(ch[i])){
//判斷是否為空格
spaceCount++;
}elseif(Character.isDigit(ch[i])){
//判斷是否為數字
numCount++;
}else{
//以上都不是則認為是其他字元
otherCount++;
}
}
System.out.println("字母的個數:"+englishCount);
System.out.println("數字的個數:"+numCount);
System.out.println("空格的個數:"+spaceCount);
System.out.println("其他字元的個數:"+otherCount);
}
}
㈨ java統計串中字元個數的代碼解釋
整個代碼就是為了統計字元串中各個字元出現的個數
Map
result
=
getCharMaps(s);
這個方法調用
主要是看這個方法
public
static
Map
getCharMaps(String
s)
{
Map
map
=
new
HashMap();
//定義一個map
for(int
i
=
0;
i
<
s.length();
i++)
{
//
下面的代碼主要是循環字元串,一次取出每一個字元
Character
c
=
s.charAt(i);
//獲取對應的字元
Integer
count
=
map.get(c);
//獲取字元對應出現的次數
map.put(c,
count
==
null
?
1
:
count
+
1);
//如果之前出現過,則加1,否則直接賦1
}
return
map;
//返回最終的map
}
㈩ java怎樣將集合中的數值數據分區間統計個數:例如(0-1000)有幾個人數據,1000-2000有幾個數據
集合分組統計處理, 實現的方法很多,簡單的寫幾種方法供參考;(理解後,自行擴展完善)
方法一:(Java8流處理粗略版) 該版本存在的問題:有些區間沒有數據,就不列印顯示該區間
importjava.util.*;
importjava.util.stream.*;
publicclassNumberDemo{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
intnumbers=10;//集合里數字的個數
intspace=1000;//區間的間隔
//給集合里添加數字
Randomrd=newRandom();
for(inti=0;i<numbers;i++){
list.add(rd.nextInt(5000));//集合里每個數字的范圍是0~4999
}
funStream(list,space);
}
privatestaticvoidfunStream(ArrayList<Integer>list,intspace){
//使用流處理把數字分組
Map<String,List<Integer>>map=list.stream().collect(Collectors.groupingBy((num)->{
return"區間:["+num/space*space+","+(num/space+1)*space+")";//分組規則
}));
map.forEach((k,v)->{
System.out.println(k);
System.out.println(" "+v.size()+"個數據");
});
}
}
方法二:(Java8流處理詳細版) 就算有的區間是0個數據,照樣列印出來
importjava.util.*;
importjava.util.stream.*;
publicclassNumberDemo2{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
intnumbers=10;//集合里數字的個數
intspace=1000;//區間的間隔
//給集合里添加數字
Randomrd=newRandom();
for(inti=0;i<numbers;i++){
list.add(rd.nextInt(5000));//集合里每個數字的范圍是0~4999
}
funStream(list,space);
}
privatestaticvoidfunStream(ArrayList<Integer>list,intspace){
//使用流處理把數字分組
Map<Integer,List<Integer>>map=list.stream().collect(Collectors.groupingBy((num)->{
returnnum/space;//分組規則
}));
//獲取集合里的最大值
Optional<Integer>maxop=list.stream().collect(Collectors.maxBy(Integer::compareTo));
intmax=maxop.orElse(0);
//計算出區間的數量
intgroups=max%space==0?max/space:max/space+1;
//列印結果
for(inti=0;i<groups;i++){
System.out.println("區間:["+i*space+","+(i+1)*space+")");
System.out.println(" 有"+(map.get(i)==null?0:map.get(i).size())+"個數據");
//System.out.println(" "+map.get(i));//把數據列印出來
}
}
}
方法三:(比較傳統的方法)
importjava.util.*;
publicclassNumberDemo3{
publicstaticvoidmain(String[]args){
ArrayList<Integer>list=newArrayList<Integer>();
intnumbers=10;//集合里數字的個數
intspace=1000;//區間的間隔
//給集合里添加數字
Randomrd=newRandom();
for(inti=0;i<numbers;i++){
list.add(rd.nextInt(5000));//集合里每個數字的范圍是0~4999
}
fun(list,space);
}
privatestaticvoidfun(ArrayList<Integer>list,intspace){
Collections.sort(list);//排序
intmax=list.get(list.size()-1);//取得最大值
intgroups=max%space==0?max/space:max/space+1;//取得區間的數量
HashMap<Integer,ArrayList<Integer>>map=newHashMap<Integer,ArrayList<Integer>>();//存區間和該區間的數字
for(inti=0;i<groups;i++){
map.put(i,newArrayList<>());
}
//把元素添加到指定的區間
for(inti=0;i<list.size();i++){
map.get(list.get(i)/space).add(list.get(i));
}
//列印結果
for(inti=0;i<groups;i++){
System.out.println("區間:["+i*space+","+(i+1)*space+")");
System.out.println(" 有"+map.get(i).size()+"個數據");
//System.out.println(" "+map.get(i));//把數據列印出來
}
}
}
測試效果如下
區間:[0,1000)
有5個數據
區間:[1000,2000)
有0個數據
區間:[2000,3000)
有1個數據
區間:[3000,4000)
有2個數據
區間:[4000,5000)
有2個數據