新手求教:字母作为数组下标怎么解释

String s = "adfoweyirlkbasgxalueralsdhg"; // 待统计字符串
int max = 0; // 记录最大出现次数
int[] cnt = new int[127]; // 临时计数用的数组
for (int i = 0; i < s.length(); i++) { // 循环字符以做统计
char c = s.charAt(i); // 取出单个字母
max = (++cnt[c] > max) ? cnt[c] : max; // 计数并检测最大出现次数
}
System.out.println (max);

cnt[c]这里能详细解释一下吗?

3个回答

字符的ascii码就是数字

我们拿 adfa 这个字符串类距离
其对应的ascii码分别为:97 100 102 97

上面程序的意思是这样子的
max=0
开始遍历

遇到a => cnt[97]=cnt[97]+1=1 max=cnt[97]=1
遇到d => cnt[100]=cnt[100]+1=1 max=1
遇到f => cnt[102]=cnt[102]+1=1 max=1
遇到a => cnt[97]=cnt[97]+1=1+1=2 max=cnt[97]=2

这样就找到了最大值!

ASCII码表一共有128个值,除去值为0的一个127个值,int[] cnt;这个数组共有127个int型内存,数组中每个元素代表每个字符出现的个数,
for循环对字符串进行操作,每个字符都对应一个ASCII码值,比如字符a的ASCII码值为97,那么a每出现了一次,cnt['a']++也就是cnt[97]++。
字符型在内存中存储是用的ASCII码值,所以字符可以直接用来索引

char一定范围内和int等价,值对应见ascii表

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
字符串作为数组下标
首先Array是从Object那里继承下。它具备Object所有的功能和特性。下面是Object的情况: 新建: var  object  =   new  Object();   增加: object[strIndex ]  =  value; (strIndex 为string)   删除: delete  object[strIndex ];   遍历: for  (
【技巧】数组作为另一个数组的下标
数组作为另一个数组的下标,这相当于统计了。。我目前有三处遇到了。 其一: 是笔试题里的,有个数组a[100]存放了100个数,这100个数取自1-99,且只有两个相同的数,剩下的98个数不同。写一个搜索算法找出相同的那个数的值(注意空间效率和时间效率要尽可能低) 这题目,我能整出来的是暴力搜索了。。。。回来给小曹一看,他看了不到半分钟,说可以再申请一个100的数组,然后把题目中数组作为下标,
数组用字母做下标问题
rnrnrn那里错了?
PTA 模拟【string以及字母->数组下标】
假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ] [ 4GHI ] [ 5JKL ] [ 6MNO ] [ 7PQRS ] [ 8TUV ] [ 9WXYZ ] [ 0空 ] 注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该...
C++中字符作为数组下标
字符在计算机中以ASCII码的形式存储,当字符作为数组下标是,其表示的下标值为该字符的ASCII码的十进制值。
php如何以一个对象作为数组下标?
好像只能以字符串或数字作为数组下标,但目前我需要用对象来标识数组中的一个记录,rn并尝试了如下代码:rn[code=PHP]rn$obj = new myClass();rn$my_array[$obj]rn[/code]rnrn但这样做不行,会出现 Warning: Illegal offset typernrn如果在c语言的话,可以取变量的地址,php有没有类似的办法呢?rnrn先谢谢了
新手求教数组问题
main()rn rn static int a[2][3] 1,2,3,4,5,6,i,j;rn for(i=0;i<=1;i++)rn rn for (j=0;j<=2;j++)rn printf("%d",a[i][j]);rn printf("\n");rn rn rn 如果我修改了循环中i和j的值,程序能运行,但显示的结果是错误的,rn我想请问在C语言中对数组的下标不作越界检查吗?另外,显示的错误的值从什么地方来的,是谁的值?
新手求教,数组。
[code=java]rnclass ArrayTestWeekrnrn public static void main(String[] args) rn rn String weeks=getWeek(2);rn System.out.println(weeks);rn rn public static String getWeek(int num)rn rn if(num>7||num<1)rn return num+"没有对应的星期";rn rn String[] weeks="星期一","星期二","星期三","星期四","星期五","星期六","星期日";rn return weeks[num-1];rn rnrnrn[/code]rnrnrn上面这个编译通过,且可以成功运行的,但是我在if语句后加了个else,就出现编译错误,是什么情况?rnrnrnrn[code=java]rnclass ArrayTestWeekrnrn public static void main(String[] args) rn rn String weeks=getWeek(2);rn System.out.println(weeks);rn rn public static String getWeek(int num)rn rn if(num>7||num<1)rn return num+"没有对应的星期";rn elsern String[] weeks="星期一","星期二","星期三","星期四","星期五","星期六","星期日";rn return weeks[num-1];rn rnrnrn[/code]rn[img=https://img-bbs.csdn.net/upload/201406/28/1403948868_297971.png][/img]
新手求教:控件数组
目的:改变按钮自身的颜色rn一个窗体内有16个按钮分别代表QBColor的16个参数,第一次按下,变成QBColor指定的颜色,再按一次返回默认颜色(vbButtonFace)。如果分别为每个按钮编写一段代码,很容易实现,但太繁琐。将16个按钮编成一个数组,调用一个子程序。如何实现?谢谢!rnrn另外,什么函数可以返回颜色的RGB(R,G,B)参数?比如QBColor(0),通过标签返回R、G、B的数值分别是多少?rnrn再次感谢!rnrnP.S.:新手没多少分,请见谅。
数组下标
多数编程语言的数组下标都是从0开始。python /Java 也有个别从1开始。matlab
数组的下标
请问C++中能否像Pascal一样用字符作为数组的下标?rn比如rnarray[a],array[b],……,array[z]?
求教关于定义下标为变量的数组
在<%%>中有一变量如count=100,rn现在要定义一个数组,用count做下标,如dim ccc(count) ,这样应该怎么写,总是报不是整型数
求教输出时候数组下标衔接问题!!!
有一个txt文件,里面存储这多行的数字,比如:rn000000000000111010010101010000000000000000rn111010101000111100000000000000000110010000rn000010101010101010010000000000000000000000rn100001010100101000000000110000000010001001rn110010101010000000000000000000000000000000rn按8个字符算成一组, 输出每组中字符为1的下标。 这个下标是每组内的下标,即0-7,这个已经解决,现在我要输出的格式是这样的,举例如下:rn.......rnM[8] P[6] X[8] P[8] rnM[11] P[8] X[11] P[11] rnM[12] P[11] X[12] P[12]rn.....rnrn输出的时候判断有1的时候输出数组下标,现在就是咋么处理M[8]中的P[8]和M[11]中的P[8]咋么衔接起来(以此类推),求教大家了!!!
求教hash值和数组下标对应的问题
上班闲逛,在网上看到关于hash算法的东西,如下:rn对于32位整数值,hash算法为:index = value * 2654435769 >> 28;rn有如下value值和数组位置对应关系:rn本地传图片半天都没传上去,我就手写吧,大家将就着看:rn数组位置 value值(链表)rn0 rn1 26rn2 31 353 387 rn3 91rn4 28 337rn5rn6 12rn7 rn8 140 496rn9 1 111rn10rn11rn12rn13rn14rn15
C语言定义数组时使用枚举作为数组的下标
昨天写代码被人告知还有这种写法,很神奇。通常情况下定义数组都是顶一个什么类型的数组然后下标或者脚标就是从0开始++++int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};但是用0-N这种整形数字做下标可读性非常不高,如果这个数组里保存的数据比较复杂,那么这种硬编码的下标方式非常的危险。所以这里通常都使用枚举变量作为下标来访问数组。如下“`static cha
ScanLine数组怎么解释?
1,[code=Delphi(Pascal)]CompareMem(FBmp.ScanLine[BSIZE -1], FBlock[i], FSize)[/code]//FBlock[i],是一款矩形区域,但是FBmp.ScanLine[BSIZE -1],是扫描的一条直线吧?这两个怎么比较啊?BSIZE是一个矩形的边长,为什么要减1?rn[code=Delphi(Pascal)]Move(FBmp.ScanLine[BSIZE -1]^, FBlock[i]^, FSize)[/code]这个和上面相似,一个是一条直线,一个是矩形,怎么能移动啊?根本不是同一类型
RDD怎么找下标,怎么创建数组?
1、RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。 2、从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。 3、因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。 所以接下来的问题就是
数组的连接,后面的数组的下标前移是怎么实现的,怎么把数组下标前移使得下标连续?
数组的连接,后面的数组的下标前移是怎么实现的,怎么把数组下标前移使得下标连续?重排数组下标在vb如何实现?
关于数组问题,新手求教!
程序内容:rn<%dim irni=4-1rndim j(i)rnfor j=o to irn j(i)=j*2rn nextrn %>rn////////////////////////rnrn缺少整型常数 rnrn/t1.asp,行3 rn为什么?rnrndim j(i)rn------^rn
【新手求教】C++合并数组的??
[b]#includern#includern#includern#includernusing namespace std;rnint main()rnrn int m,n;rn int a[100],b[100],c[100];rn while(cin>>m)rn rn for(int i = 0;i < m;i++)rn cin >> a[i];rn rn while(cin >> n)rn rn int t = m;rn for(int j = 0;j < n;j++)rn rn cin >> b[j];rn c[t] = b[j];rn t++;rn rn rn sort(c[0],c[m+n-1]);rn for(int i = 0;i < m+n;i++)rn cout<
新手求教,显示数组的方法
题目:定义一个4行4列的double型二维数组,并创建一个方法显示数组。rnrn[code=java]rnrnimport java.util.*;rnpublic class test2_14 rn public static void main(String[] args)rn creat();rn print();rn rn rn public static void creat()rn double [][] t;rn t = new double[4][4];rn Scanner reader = new Scanner(System.in);rn for (int i = 0;i<4;i++)rn for(int j = 0;j<4 ;j++)rn t[i][i] = reader.nextDouble();rn rn rn rn public static void print() rn for (int i = 0;i<4;i++)rn for(int j = 0;j<4 ;j++)rn System.out.print(t[i][j]); //怎样才能让这个方法显示数组?rn rn rn rn rnrnrn[/code]rnrn我自己写的 print方法是错的。提示 t没有定义。
新手求教~~~~关于数组的问题
今天随便写个代码,本以为没什么问题的,结果运行的时候发现一个诡异的现象,求高手指点rnrn这是我写的代码,主要就是输入输出。。。。rnrnrn#include rn#include rnrnusing namespace std;rnrnint main(int argc, char *argv[])rnrn char a[10];rn cin>>a;rn cout<
Object数组取值,新手求教
[img=https://img-bbs.csdn.net/upload/201601/06/1452065699_731266.png][/img]rn取出数组内的值,方法越简单越好。
怎么得到数组中被调用的下标和尚未调用的下标?
怎么得到数组中被调用的下标和尚未调用的下标?如果是多个函数同时调用,byref可以获得么?
求教!怎么将相同的元音字母输入到第三个数组中?
我的源代码rn------------------------------------------------rn#includernmain()rnrn int i,j,c,num=0;rn char string[81];rn char string2[10]='a','e','i','o','u','A','E','I','O','U';rn char string3[81];rn for(i=0;i<10;i++)rn printf("%c ",string2[i]);rn printf("\n输入含有元音字母的字符串\n");rn gets(string);rn for(i=0;(c=string[i])!='\0';i++)rn for(j=0;j<10;j++)rn rn if(c==string2[j])rn rn num++;rn rn rn printf("\n");rn printf("\n与元音字母相同的个数是%d",num);rn printf("\n"); rnrn------------------------------------------------rn需要把输入的字符串中与数组2中相同的元音字母输入到第三个数组中,搞不明白怎么做........rn请教~~
JavaScript如何遍历下标不规则(为字母)的数组
就是类似PHP的each方法,可以同时取得下标和值rnrn这是w3教程的示例,php的rnrn $val ";rn rn?>rnrnjs有类似的方法吗?
这两个单词怎么解释?求教
小弟搞不清c中的argument和parameter意思上有什么不同 是不是都做“参数”解
char类型作为循环下标
[code=C/C++]rnfor ( char i=0;i<20;i++ )rnrn printf("i=%d\n",i);rnrn[/code]rnrn为什么char数据类型可以作为循环下标.即=int功能.
Smarty数组下标中怎么进行数值计算?
[code=PHP]rn$configs[$key*3]rn[/code]rn上面是我想实现的效果rn$configs和$key是php赋值过来的rn难点就是怎么在下标中用math函数
split 后,怎么得到数组的最大下标?
如:rnvar str="a#B#C#D"rnvar ar=str.splitrn怎么样得到ar最大下标,类似VB的UBOUND??
JAVA新手求教一段代码的解释
class StaticSupernstaticnSystem.out.println("super static block")nnStaticSupernSystem.out.println("super constructor");nnnnpublic class StaticTests extends StaticSupernstatic int rand;nstaticnrand=(int)(Math.random()*6);nnnStaticTests()nSystem.out.println("constructor");nnnpublci static void main(String[] args)nSystem.out.pringln("in main");nStacticTest st =new StacticTests();nnnn上面这段的输出顺讯是这样的nsuper static blocknstatic block 3nin main super constructornconstructornn在下小白。。谁能帮忙解释一下为什么是这个输出顺序nn另外n像这种,是什么意思?是方法?构造函数?还是啥意思,为啥没有()符号nStaticSupernSystem.out.println("super constructor");n
怎么创建下标为1-10的数组?
rt
书上的题目:数组下标(?)怎么理解
#include "iostream.h"rnclass CMatrixrnrnpublic:rn CMatrix(int r,int c)rn rn row=r;col=c;rn element=new double[row*col];rn rn double &operator()(int x,int y)rn rn return element[col*(x-1)+y-1];rn rn double &operator()(int x,int y) constrn rn return element[col*(x-1)+y-1];rn rn ~CMatrix()delete []element;rnprivate:rn double *element;rn int row,col;rn;rnvoid main()rnrn CMatrix m(5,8);rn for (int i=0;i<5;i++)rn m(i,1)=i+5;rn for (i=0;i<5;i++)rn cout<
java怎么判断数组下标是否越界?
java怎么判断数组下标越界?如果下标越界了就 return true else return false
求教 关于引用数组作为函数的形参
如下代码,用数组的引用作为函数的参数,那么该如何写函数声明?rn[code=C/C++]rn#includernconst int n=20;rnusing namespace std;rnvoid input(int (&num)[n]) //输入函数,如果放在main函数后面,该如何写函数声明?rnrn cout<<"请依次输入20个整数:"<>num[i];rn if(!cin)rn rn cout<<"输入数据有误,请重新输入"<
char数组怎么通过下标改值?
char数组怎么通过下标改值?rnrn[code=C#]rnchar[] sz = new char[64];rn int n, k;rn int index = 0;rn for (n = 0; n < 64; n++)rn rn rn szPwd[index] = 'a';rn index++;rn rn rn MessageBox.Show(szPwd.ToString());rn[/code]rn居然弹出system.char[]?
怎么取得int[]数组的下标长度?
-
怎么去除数组指定下标元素
直接上代码rn[code=php](.*)<\/table>/isu', $output, $arr);rn$output = preg_replace("']*?>'si","",$arr[0]);rn$output = preg_replace("']*?>'si","",$output);rn$output = preg_replace("']*?>'si","",$output);rn$output = preg_replace("']*?>'si","",$output);rn$output = preg_replace("''si","",$output);rn$output = preg_replace("''si","",$output);rn$output = str_replace("","tr",$output);rn$output = str_replace("\t","",$output);rn$output = str_replace(" ","",$output);rn$output = preg_replace('/ /',"",$output);rn$output = preg_replace("'<[/!]*?[^<>]*?>'si","",$output);rn$output = explode('tr', $output);rnarray_pop($output); //去除数组最后一个空元素rnforeach ($output as $key => $value) rn $value = trim($value); rn $temp = explode("\r\n",$value);rn $output[$key] = $temp;rnrnarray_shift($output);rnprint_r($output);rnexit;rn$smarty->assign('arr',$output); //数组定义模板rn$smarty->display('lib.html');rn?>[/code]rn想要去除红字的元素rnArrayrn(rn [0] => Arrayrn (rn [0] => 1rn [1] => 天才少年维克多rn [color=#FF0000] [2] => (美) 乔辛·迪·波沙达, 雷蒙德·乔伊著rn [3] => 南海出版公司2014.06[/color]rn [4] => I712.45/965rn [5] => 中文图书rn )rnrn [1] => Arrayrn (rn [0] => 2rn [1] => 维特根斯坦传:天才之为责任.插图本rn [color=#FF0000][2] => (英) 瑞·蒙克著rn [3] => 浙江大学出版社2014.04[/color]rn [4] => B561.59/14rn [5] => 中文图书rn )rn)rn分不多,全给了,十分感谢!
Swift数组下标
var Arr = [&quot;a&quot; , &quot;b&quot; , &quot;c&quot; , &quot;d&quot; , &quot;e&quot; , &quot;f&quot; , &quot;g&quot; ,] var Brr = [&quot;b&quot; , &quot;d&quot; , &quot;f&quot; , &quot;g&quot; ,] var gongtong = [Int]() //print(&quot;Arr个数为:\(Arr.count)
求数组最值和下标
在做一道java 习题时,遇到了求数组最大下标的问题,脑子里只有排序算法的思路,始终不得其解。 在网上搜索一番后得出答案。 具体思路是 设定一个最大下标变量,通过循环让数组中的每一个值依次与数组的最大下标值进行比较。从而得出最大下标值。 public static void getMaxIndex(int[] array){ int maxIndex=0; for(int i=0
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件