JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换

一、字符串、字符数组和整型数组的创建

1、字符串的创建方法

1.1 通过引用字符数组来创建字符串

char a[]={'A','b','c','E'};

String str1=new String(a);

System.out.println(str1);

1.2 先定义后赋值

String str2;

str2="this is a book";

System.out.println(str2);

1.3 通过截取字符数组的一部分来创建字符串

char a3[]={'a','b','c','D','6','p'};

String str3=new String(a3,2,4);

System.out.println(str3);

1.4 通过类的实例化对象方法实例化一串字符来创建字符串

String str4=new String("this is a book");

System.out.println(str4);

2、创建整型数组

2.1 声明并赋值

int[] arr = {1,2,4, …};

2.2 声明数组名开辟空间并且赋值

int[] arr;

arr = new int[]{1,2,3, …};

2.3 声明数组时指定元素个数然后赋值

int[] arr1= new int[3];

还有一些具体的创建方法可以参考转化方法。

二、整型数组、字符串数组、整型数和字符串的转换

1、字符串转化为字符数组

  String str="123456";
  char[] c = str.toCharArray() ;
  System.out.println(c);

2、字符串转化为整型数组

  String str="123456";
  int[] a = new int[str.length()];
  for(int i=0;i<str.length();i++) {
      a[i]  = str.charAt(i)-'0';
    }

3、字符串转化为整数型

1、int i = Integer.valueOf(str).intValue();
2、double b = Double.parseDouble(str); 将字符串转换为double型
3、int b = Integer.parseInt(str);   将字符串转换为int型

4、字符数组转化为字符串

char[] c = {'a','s','d','4','5',};
String str = new String(c);
System.out.println(str);

5、字符数组转化为整型数组

char[] c = { '1', '2', '3', '4', '5', };
int[] a = new int[c.length];
   for (int i = 0; i < 5; i++) {
       a[i] = c[i] - '0';
       System.out.println(a[i]);
   }

6、整数型转化为字符型

1、String str = Integer.toString(i);  将整数型转换为字符型
2、String s = String.valueOf(i);  这个可以将double类型转换为字符型
3、String s = "" + i;

如果

String str1 = “ad45nfdf”;

str1.charAt(0) 是为 “a”;

str1.charAt(7)是为”f”;

三、字符串中的一些方法

1、indexof()

Java中字符串中子串的查找共有四种方法(indexof())

indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。
如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。

Java中字符串中子串的查找共有四种方法,如下:
① int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 
② int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 
③ int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。 
④ int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。

应用到算法题目中。

题目:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)

import java.util.*;
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        for(int i = 0;i<str.length();i++){
            if(str.indexOf(str.charAt(i))==i && str.indexOf(str.charAt(i),i+1)==-1) return i;
        }
        return -1;
       }
}

解析:如果输入参数是 "google"

条件一:str.indexOf(str.charAt(i))==i  的作用是,是用第①种方法,能确定该字符是第一次出现。

条件二:str.indexOf(str.charAt(i),i+1)==-1 的作用是从第i+1个位置起找和i位置一样的字符,如果为-1,说明不存在。

如果没有条件一,返回值就是2,因为对于第二个o来说,它的后面没有o了。

如果没有条件二,返回值为0 ,因为对于第一个g来说,它是第一个g(即前面没有其他g)

 

  • 6
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值