当前位置: 首页 > news >正文

网站建设服务费计什么科目建筑工程网上办事系统

网站建设服务费计什么科目,建筑工程网上办事系统,台州网页设计招聘信息,网页如何制作网站起因是今天在刷下面这个力扣题时的一个报错 541. 反转字符串 II - 力扣(LeetCode) 这个题目本身是比较简单的,所以就不讲具体思路了。问题出在最后方法的返回值处,要将字符数组转化为字符串,第一次写的时候也没思考直…

起因是今天在刷下面这个力扣题时的一个报错

541. 反转字符串 II - 力扣(LeetCode)

这个题目本身是比较简单的,所以就不讲具体思路了。问题出在最后方法的返回值处,要将字符数组转化为字符串,第一次写的时候也没思考直接就是return charArray.toString()

class Solution {public String reverseStr(String s, int k) {int len=s.length();char[] charArray = s.toCharArray();for (int i = 0; i < s.length()-1; i+=2*k) {int start=i;//这里是判断尾数够不够k个来取决end指针的位置int end=Math.min(charArray.length-1,start+k-1);while (start<end){char temp=charArray[start];charArray[start]=charArray[end];charArray[end]=temp;start++;end--;}}return charArray.toString();
}
}

然后就出现了以下报错:

发现输出竟然是一坨看不懂的东西

后面思考了一下,原因如下:

toString()是顶级父类object中的方法,数组类中并没有对此方法重写(override),仅仅是重载(overload)为类的静态方法。所以,数组直接使用toString(),会去调用object类里面的toString方法,结果是[类型@哈希值]。

于是后面我又用了return Arrays.toString(charArray)还是不行。

class Solution {public String reverseStr(String s, int k) {int len=s.length();char[] charArray = s.toCharArray();for (int i = 0; i < s.length()-1; i+=2*k) {int start=i;//这里是判断尾数够不够k个来取决end指针的位置int end=Math.min(charArray.length-1,start+k-1);while (start<end){char temp=charArray[start];charArray[start]=charArray[end];charArray[end]=temp;start++;end--;}}return Arrays.toString(charArray);}
}

原来Arrays.toString(charArray)得到的字符串输出是有格式的而题目要求直接输出字符串。

最后用的是return new String(charArray);终于是通过了。

class Solution {public String reverseStr(String s, int k) {int len=s.length();char[] charArray = s.toCharArray();for (int i = 0; i < s.length()-1; i+=2*k) {int start=i;//这里是判断尾数够不够k个来取决end指针的位置int end=Math.min(charArray.length-1,start+k-1);while (start<end){char temp=charArray[start];charArray[start]=charArray[end];charArray[end]=temp;start++;end--;}}return new String(charArray);}
}

通过这次刷题,我也发现了我对Java 数组和字符串的转换这方面非常不熟悉,于是就总结了一下这方面的内容

java数组->字符串


       java中所有的类,不管是java库里面的类,或者是你自己创建的类,全部是从object这个类继承的。object里有一个方法就是toString(),那么所有的类创建的时候,都有一个toString的方法。这个方法是干什么的呢?

首先我们得了解,java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。

Object类中的toString()方法的源代码如下:

    /*** Returns a string representation of the object. In general, the* {@code toString} method returns a string that* "textually represents" this object. The result should* be a concise but informative representation that is easy for a* person to read.* It is recommended that all subclasses override this method.* <p>* The {@code toString} method for class {@code Object}* returns a string consisting of the name of the class of which the* object is an instance, the at-sign character `{@code @}', and* the unsigned hexadecimal representation of the hash code of the* object. In other words, this method returns a string equal to the* value of:* <blockquote>* <pre>* getClass().getName() + '@' + Integer.toHexString(hashCode())* </pre></blockquote>** @return  a string representation of the object.*/public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}

char[] data = {'a', 'b', 'c'};
System.out.println(data.toString());  //输出结果为[C@79fc7299


输出会去调用object类里面的toString 方法,根据源码可知,输出结果为[类型@哈希值]
数组类中并没有对此方法重写(override),仅仅是重载(overload)为类的静态方法(参见java.util.Arrays)。

所以,数组直接使用toString(),会去调用object类里面的toString方法,结果是[类型@哈希值]。

数组转字符串可以使用Arrays类中的toString方法Arrays.toString(data)。附上Arrays类的toString方法源码。但是由源码可知,这种方法的toString()是带格式的,也就是说输出的是[a, b, c]。

 /*** Returns a string representation of the contents of the specified array.* The string representation consists of a list of the array's elements,* enclosed in square brackets (<tt>"[]"</tt>).  Adjacent elements are* separated by the characters <tt>", "</tt> (a comma followed by a* space).  Elements are converted to strings as by* <tt>String.valueOf(char)</tt>.  Returns <tt>"null"</tt> if <tt>a</tt>* is <tt>null</tt>.** @param a the array whose string representation to return* @return a string representation of <tt>a</tt>* @since 1.5*/public static String toString(char[] a) {if (a == null)return "null";int iMax = a.length - 1;if (iMax == -1)return "[]";StringBuilder b = new StringBuilder();b.append('[');for (int i = 0; ; i++) {b.append(a[i]);if (i == iMax)return b.append(']').toString();b.append(", ");}}


如果仅仅想输出abc则需用以下两种方法:


  直接在构造String时转换。

        char[] data = {'a', 'b', 'c'};String str = new String(data);


 调用String类的方法转换。

        String.valueOf(data)


String类valueOf方法的源码如下,由源码可知,valueOf实际也是new String对象,和方法1一样。

/*** Returns the string representation of the <code>char</code> array* argument. The contents of the character array are copied; subsequent* modification of the character array does not affect the newly* created string.** @param   data   a <code>char</code> array.* @return  a newly allocated string representing the same sequence of*          characters contained in the character array argument.*/public static String valueOf(char data[]) {return new String(data);}


java字符串->数组

toCharArray() 方法

示例如下:

String str = "Hello, world!";
char[] charArray = str.toCharArray();
System.out.println(Arrays.toString(charArray));

http://www.yayakq.cn/news/987395/

相关文章:

  • 广州网站开发定制需要多少钱网站后台登录系统是怎么做的
  • 邢台seo关键词引流湛江seo推广公司
  • 上海市建设项目施工审图网站安装多个wordpress
  • 做网站高校视频十大行情软件网站下载
  • 移动网站开发源代码稿定设计官方免费下载
  • 大连网站建设 仟亿给个网站你们会感谢我的
  • 怎么样做好网站运营嵌入式开发工程师
  • 杭州网站优化搜索科技与生活
  • 怀化找什么人做网站黄山旅游攻略必去景点
  • 河南郑州哪里可以做公司网站wordpress外链视频
  • 安徽省工程建设信用平台网站桥头镇做网站
  • 汽车最好网站建设南昌网站优化
  • 柳州市城市建设局网站个人网页案例
  • 网站建设 培训班 成都海口网站建设介绍
  • 深圳市宝安网站建设线上ui设计培训哪个好
  • 网站里的专题页面大气网络公司网站源码
  • 小企业建网站眉山做网站
  • 微商水印相机做网站专业网站建设公司兴田德润在哪里
  • 网站首页新闻模板中建八局土木建设有限公司网站
  • 南京华夏天成建设有限公司网站网站视频是什么软件做的
  • 推荐做网站的话术出口外贸是做什么的
  • 广州省建设厅官方网站温州网站制作价格
  • 申请网站做自己的产品二手车网站程序
  • 网站开发主要用什么语言外贸网站建设关键点
  • 网站详情页用cdr做可以吗素材模板网站
  • 仿新浪微博网站代码广告传媒网站模板
  • 微信 网站提成方案点做wordpress 修改链接
  • 有可以做推广的网站吗wordpress图片显示缩略图
  • 怎样建立自己的网站平台做网站的合同范文
  • 免费招聘网站建设visio网站开发流程图