java中怎么判断字符数组的长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么判断字符数组的长度相关的知识,希望对你有一定的参考价值。

如果只是要数组的长度的话,那么任意的数组都有length属性,直接访问就可以了。如果想要字符串数组中所有字符的长度,就得循环了。
String[] a = "111","22","3333","44444";
int rs=0;
for( int i=0 ; i<a.length ; i++ )
rs+=a[i].length();

// rs为字符数组中所有字符串的长度之和。
参考技术A 数组 s.length
字符串 s.length()
list       list.size();
map     map.size();
set       set.size();

本回答被提问者和网友采纳
参考技术B String[] ss = new String[6];
ss.length; // 长度
参考技术C 数组的话可以直接用.length

字符串数组的长度判断

在面试的时候突然遇到一个问题,面试官给出一个字符串数组,我该怎么去保存这个字符串数组呢,保存好以后又怎么把这个字符串数组利用起来,

我一开始想到的是用vector<string>存储,

  vector<string> vecstr={"i","work","at","byte","bytedance"};

但是,太年轻了,没这种用法。至少c++98中不行!

(我看c++文档中对vector的介绍,出现了这样的赋值:

std::vector<int> v = {7, 5, 16, 8}; //c++17可以
那样的话string类型的vector肯定也可以的,我把本地c++版本升级后,发现果然可以。
vector<string> vecstr={"i","work","at","byte","bytedance"};

 

这中用法只在 c++ 17可以

没升级之前,只能另想办法,那就使用数组吧

string str[]={"i","work","at","byte","bytedance"};

这样存储当然可以,在想得到str的长度时,我懵逼了,str.length()?   不行!没这用法。sizeof(str)?不行!这样得到的是str所占内存的大小。

那用str的内存大小除以每一项的内存大小总可以了吧,sizeof (str) / sizeof ( str[0] ) ,不行,每一项的长度不一样,这样算会不对劲,但是真的不行吗?我查资料,写代码验证。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    //string str[]={"i","work","at","byte","bytedance"};
    vector<string> vecstr= {"i","work","at","byte000000000000000000000000000000000000000","bytedance"};
    vector<int> vecint= {1,2,3,4,5};
    for(string x: vecstr)
    {
        cout<<sizeof(x)<<" "<<x.length()<<endl;
    }
    return 0;
}

运行截图

技术图片

 

 我一开始以为sizeof(string)会返回string所占内存的大小,会随着字符串长度的变化而变化,但实际上并没有,string再长,sizeof返回的也是一个固定的值(不同的环境结果可能会不同)

所以说通过这种方式是可以求得字符串数组的数组长度的。sizeof ( str ) / sizeof ( str [ 0 ] ).  

sizeof很特殊,不要把sizeof当成函数,也不要看作一元操作符,把他当成一个特殊的编译预处理。

关于sizeof,更多资料可以参考

https://www.cnblogs.com/wanghetao/archive/2012/04/04/2431760.html

以上是关于java中怎么判断字符数组的长度的主要内容,如果未能解决你的问题,请参考以下文章

字符串数组的长度判断

字符串数组的长度判断

JS中如何判断一个字符串是一个字符串数组中的一个元素!!?

java,要实现字符串按字节截取的方法

java,要实现字符串按字节截取的方法

java 怎么判断一个集合是不是含有某个值