java厚积薄发之String常用方法

阅读: 评论:0

java厚积薄发之String常用方法

java厚积薄发之String常用方法

1.java 怎样从一个string字符串中判断某个字母出现的次数

String str = "how old are you";int x = 0;
//遍历数组的每个元素    
for(int i=0;i<=str.length()-1;i++){String getstr=str.substring(i,i+1);if(getstr.equals("0")){x++;}}System.out.print(x);  

2.Java如何实现js中的split和join

js中:

var arr=[1,2,3];
var srrString=arr.join("-");
var newArr= srrString.split("-");
console.log(srrString);
console.log(newArr);
结果:1-2-3      ["1", "2", "3"]

java:

 String str="1-2-3";String[] arr=str.split("-");String str2=StringUtils.join(arr, "#");String str3&#place("-","#");System.out.println("str2: " + str2);System.out.println("str3: "+str3);

结果:

str2: 1#2#3
str3: 1#2#3

3.indexOf()
<span style="font-size:14px;"><span style="font-size:14px;">package com.waxberry.pc.pay;import java.io.IOException;
import Matcher;
import Pattern;public class Mydemo {public static int getCharacterPosition(String string) {// 这里是获取"/"符号的位置Matcher slashMatcher = Patternpile("/").matcher(string);int mIdx = 0;while (slashMatcher.find()) {mIdx++;// 当"/"符号第三次出现的位置if (mIdx == 3) {break;}}return slashMatcher.start();}public static void main(String[] args) throws IOException {String str1 = "wangwei/xiaowei/xiaowang";String str2 = "wangwei/";System.out.println(str2.length());System.out.println(str2.indexOf("/"));String str3 = str1.substring(str2.length(), str1.length());System.out.println(str3);System.out.println(str3.substring(0, str3.indexOf("/", 0)));String str4 = "ww/ss/dd/";System.out.println(str4.indexOf("/", 0));System.out.println(str4.indexOf("/", 1));System.out.println(str4.indexOf("/", 2));System.out.println(str4.indexOf("/", 3));System.out.println(str4.indexOf("/"));System.out.println(str4.lastIndexOf("/"));int aa = getCharacterPosition(str4);System.out.println("333" + aa);System.out.println(str4.substring(0, str4.indexOf("/", 2)));}
}
</span></span>

输出:
<span style="font-size:14px;"><span style="font-size:14px;">8
7
xiaowei/xiaowang
xiaowei
2
2
2
5
2
8
3338
ww
</span></span>
4.java Integer和int之间==的比较问题及解释

public static void main(String[] args) {// TODO Auto-generated method stubInteger a = new Integer(1);Integer b = new Integer(1);int c=1;Integer e = 1;System.out.println("a==b:"+(a==b));System.out.println("a==c:"+(a==c));System.out.println("a==e:"+(a==e));System.out.println("c==e:"+(c==e));}

结果:

a==b:false
a==c:true
a==e:false
c==e:true

原因:

Integer是int的封装对象,两个对象==比较的是栈的值
Integer a = new Integer(1);
Integer b = new Integer(1);
a与b存的是Integer的堆中的地址,而不是值
a、b指向堆中的地址显然不同所以 a==b 为falseint c = 1; int为值类型,引用类型Integer与值类型int比较显然比较的是值
因为int在堆中是不开辟内存的,他在栈中的值则为他本身的值
所以a==c比较的是他们各自的value, a==c为trueInteger e=1; 这个比较特殊,直接赋值  它有独立的内存,每次赋值时将检查内存中是否有值跟他匹配的,若有则把此内存地址付给e,若没有,开辟新的内存你可以尝试下面的例子:
Integer t = 1;
Integer t1 = 1;
t==t1 为true,如上所说,此时t与t1指向的是同一块内存new 一定是开辟新的内存,直接赋值则不一定开辟新的内存
因为a的引用指向堆,而e指向专门存放他的内存,所以他们的内存地址不一样
所以a==e为falsec==e等同于 a==c,一个引用类型一个值类型



本文发布于:2024-01-28 14:15:01,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064225068002.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:厚积薄发   常用   方法   java   String
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23