千锋教育-做有情怀、有良心、有品质的职业教育机构

领取全套视频

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术要点  >  正文
分享到:

从零开始学Java之String字符串很常用

时间:2023-05-06 15:31      来源:千锋大连校区 作者:bjq

  从零开始学Java之String字符串很常用

      概述

String字符串很常用

  String是Java里的一个类,属于引用类型,遵循引用类型的基本规律和要求。但它也有自己的一些特点,比如可以直接用双引号"......"来表示一个字符串,所以凡是用双引号括起来的一串字符都是String对象,如“Hello”在编译后就会成为一个String对象。

  而且String是final类,一旦创建了一个String对象,理论上就不能再被改变,当然我们可以使用其他变量重新赋值的方式进行更改。

  另外从名字上我们也可以猜测出,字符串与字符有一定的关系。实际上,String字符串的内部是通过一个private final char[]数组来实现数据存储的,所以我们可以通过如下方式来表示一个字符串:

String str = new String(new char[] {'H', 'e', 'l', 'l', 'o', 'y', 'y', 'g'}); 

 

  当然,以上这种字符串的表达方式太过麻烦,而且由于String太常用了,所以Java就提供了"......"这种极简的表达方式供我们使用。

  我们要知道,Java字符串的一个重要特点就是字符串的不可变性。这种不可变主要是通过final修饰String类,private final char[]字段对数据的存储,且没有提供任何可以修改char[]字段的方法来实现的。

  与字符的区别

  壹哥之前给大家讲过java里的8种基本数据类型,我们知道,其中有一种比较特殊的char字符类型,可以在单引号中存储单个的字符元素,比如'A'、'9'、'国' 等。而我们今天要学习的String类,则是用双引号"..."来表达字符串的。作为初学者,我们一定要注意字符与字符串的区别:

  ● 字符只能表示单个字符元素,必须用单引号''把单个的字符元素括起来,如'A'、'9'、'国' 等;

  ● 字符串可以表示单个或多个字符元素,必须用双引号把单个或多个字符元素括起来,如"A"、"Hi"、"中国"等;

  ● 字符是基本类型,其本质是一种数值;字符串是引用类型,其本质是一个java类。

  定义方式

  String字符串的定义方式,常用的有如下两种:

  通过构造方法创建字符串对象;

  直接赋值。

  我们在开发时,其实很少使用第一种方式,因为太过啰嗦,一般都是通过直接赋值的方式进行定义。

  3.1 构造方法定义

  Java为String类提供了11个构造方法创建String对象,这些方法提供了不同的参数来初始化字符串。当字符串变量被创建处理后,必须经过初始化才能使用。下面是通过构造方法定义String对象的几种方式,大家可以参考:

/**
* @author 一一哥Sun
* V我领资料:syc_2312119590
* 各平台都有壹哥的同名博客哦
*/

public class Demo01 {

public static void main(String[] args) {
//通过构造方法创建String对象

//构造一个空字符串,相当于String s1="";
String s1=new String();
System.out.println("s1的长度="+s1.length()+",s1="+s1);

//构造一个由内容的字符串,相当于String s1 = "一一哥";
String s2 = new String("跟一一哥学Java");
System.out.println("s2的长度="+s2.length()+",s2="+s2);

//通过字节数组构建字符串对象
byte[] b = {97,98,99,100};
String s3=new String(b);
System.out.println("s3的长度="+s3.length()+",s3="+s3);

//通过字节数组构建字符串对象
//参数1:字节数组;参数2:起始下标;参数3:长度
String s4 = new String(b, 0, b.length);
System.out.println("s4的长度="+s4.length()+",s4="+s4);

//通过字符数组创建字符串对象
char[] c = {'一','一','哥'};
String s5 = new String(c, 0, c.length);
System.out.println("s5的长度="+s5.length()+",s5="+s5);

}

}

 

  3.2 直接赋值定义

  下面是通过直接赋值的方式来定义String对象的方式,大家可以参考:

public class Demo02 {

public static void main(String[] args) {
//直接赋值的方式创建String对象

//注意:null表示String对象为空,而""表示是一个长度为零、内容为空的空字符串对象,但该对象不为空!
//定义一个值为null的空字符串
String s1=null;
System.out.println("s1="+s1);

//定义一个内容为空,长度为零的字符串
String s2 = "";
System.out.println("s2的长度="+s2.length()+",s22="+s2);

//定义一个带有内容的字符串
String s3 = "一一哥";
System.out.println("s3的长度="+s3.length()+",s3="+s3);

}

}

 

  我们要注意String s=null与String s=""的区别:

  ● String s=null表示String对象为空,即字符串对象的引用指向了null,还没有指向任何的内存空间;

  ● String s=""是声明了一个字符串类型的引用,其值为"",表示是一个长度为零、内容为空的空字符串对象,但该对象不为空!这个s对象的引用指向的是空字符串的内存空间。

  以上内容,是对字符串定义和使用的常规操作,但实际上String字符串还有其他很多有用的方法,接下来壹哥就专门给大家介绍一下这些实用方法。

  二. 字符串实用方法

  字符串的比较方法

  在Java中,如果我们想比较两个字符串,其实主要是比较两个字符串的内容是否相同,所以应该使用equals()方法,而不要使用==进行比较。

  p```language

  ublic class Demo04 {

  public static void main(String[] args) {

  String s1 = "hello";

  String s2 = "hello";

  //==用于比较两个对象的地址

  System.out.println("s1==s2的结果:"+(s1 == s2));

  //equals()用于比较两个对象的内容

  System.out.println("s1.equals(s2)的结果:"+s1.equals(s2));

  }

  }


大家注意,在上面的案例中,虽然使用==和equals()比较的结果都是true,但实际上这只是”凑巧“罢了。在本案例中,之所以使用”==“进行比较的结果也是true,这是因为Java编译器在编译期,自动把所有相同内容的字符串当作一个对象放入到了字符串常量池。所以s1和s2都指向了同一个引用地址,结果自然就是相同的。但如果我们把上述案例换一种写法,再利用”==“进行比较就不是这样的结果。
```language
public class Demo04 {

public static void main(String[] args) {
//新的写法
String s3 = "yiyige";
//将字符串转为小写
String s4 = "YIYIGE".toLowerCase();
//此时s3和s4是指向两个不同引用地址的对象
System.out.println("s3==s4的结果:"+(s3 == s4));
System.out.println("s3.equals(s4)的结果:"+s3.equals(s4));
}

}

 

  从上面的案例中,我们可以得出一个结论,要想比较两个字符串,应该使用equals()方法,而不是"=="方法!

  2. 判断字符串是否为空

  另外在前面的代码案例中,还给大家介绍了两种定义String字符串对象的方式,并在第2种方式中给大家提到了null与""两种为空的情况。而我们在实际开发中,判断一个字符串对象是null与"",其实是一种非常常见的操作,那么我们该怎么判断String对象是否是null或""呢?

public class Demo03 {

public static void main(String[] args) {
//判断字符串对象是否为null或""

//注意:null表示String对象为空,而""表示是一个长度为零、内容为空的空字符串对象,但该对象不为空!

//定义一个值为null的空字符串
String s1=null;

//判断方式1:判断对象是否为null
if(s1==null) {
System.out.println("s1字符串对象为null,s1="+s1);
}

//定义一个内容为空,长度为零的字符串
String s2 = "";

//判断方式2:这种判断写法存在异常隐患,字符串对象s2有可能为null,如果s2.equals()调用时,s2可能为null,此时就会出现空指针异常
if(s2.equals("")) {
System.out.println("s2的长度="+s2.length()+",s2="+s2);
}

//判断方式3:对上面的判断方式进行改进,用以下方式进行判断,就会消除空指针异常的隐患
if("".equals(s2)) {
System.out.println("s2的长度="+s2.length()+",s2="+s2);
}

//判断方式4:判断一个空串的长度是否为0,这种判断字符串是否为空的方式效率更高
if(s2.length()==0) {
//我们也可以直接使用字符串的isEmpty()方法,其内部实现与此方式相同。
System.out.println("s2的长度="+s2.length()+",s2="+s2);
}

//判断方式5:更全面严谨的判断。s==null一定要写在前面,因为如果s为null,先调用后面的s.length()就会出现空指针异常
if(s2 == null || s2.length() == 0) {
System.out.println("s2的长度="+s2.length()+",s2="+s2);
}

//判断方式6:或者我们直接使用字符串的isBlank()方法
if(s2.isBlank()) {
System.out.println("s2的长度="+s2.length()+",s2="+s2);
}

}

}

 

  在实际开发时,我们一般是采用第5种判断方式,这种判断方式更为严谨,能够把两种”为空“的情况都考虑到。当然,我们也可以直接使用字符串对象提供的isEmpty()或isBlank()方法,进行判空。另外我们要特别注意,防止出现空指针异常,并且也要考虑采用哪种方式判断为空的情况效率更高。

  3. 判断相关的方法

  String字符串中提供了几个与字符串判断相关的方法,可以对一个字符串进行各种判断,这几个方法如下:

  ● equals():判断两个字符串的内容是否相同;

  ● equalsIgnoreCase():判断两个字符串是否相等,忽略大小写;

  ● isEmpty():判断字符串是否为空串"",主要是判断字符串长度是否为0;

  ● isBlank():判断字符串是否为空串"",主要是判断字符串中是否包含空白字符;

  ● startsWith():判断字符串是否以指定的字符串开头;

  ● endsWith():判断字符串是否以指定的字符串结尾;

  ● contains():判断字符串中是否包含指定的字符串,参数是CharSequence类型,而不是String。

public class Demo05 {

public static void main(String[] args) {
String s1 = "yiyige";

//判断两个字符串的内容是否相同
System.out.println("yiYige".equals(s1));

//判断两个字符串是否相等,忽略大小写
System.out.println("yiyige".equalsIgnoreCase(s1));

//判断字符串是否为空,或是否有空白字符

//长度为0,字符串为空
String s2="";

//长度不是0,字符串不为空
String s3=" ";

//长度不是0,字符串不为空
String s4=" \n";

//判断字符串是否为空串""
System.out.println("s2为空吗?"+s2.isEmpty());//true
System.out.println("s3为空吗?"+s3.isEmpty());//false
System.out.println("s4为空吗?"+s4.isEmpty());//false

//判断字符串是否是空串或有空白字符
System.out.println("s2为空吗?"+s2.isBlank());//true
System.out.println("s3为空吗?"+s3.isBlank());//true
System.out.println("s4为空吗?"+s4.isBlank());//true

String s5 = "1234567890123";
//判断字符串是否以指定的字符开头
System.out.println(s5.startsWith("12"));

//判断字符串是否以指定的字符串开头,并指定开始位置
System.out.println(s5.startsWith("34", 2));

//判断字符串是否以指定的字符串结尾
System.out.println(s5.endsWith("23"));

//判断字符串中是否包含指定的字符串
System.out.println(s5.contains("SB"));
}

}

 

  4. 获取相关的方法

  String字符串中提供了几个与字符串获取相关的方法,这几个方法如下:

  ● charAt():获取指定下标位置上对应的字符,并返回char类型;

  ● indexOf():获取指定字符串在原字符串中的下标索引位置,如果不包含该字符串则返回-1;

  ● lastIndexOf():该方法与indexOf()类似,但该方法是从后往前找,找到指定字符最后出现的位置;

  ● length():该方法用于返回字符串对象中包含的字符数量,即可以获取字符串的长度。

public class Demo06 {

public static void main(String[] args) {
String s1 = "abcn12c3fcds";

//charAt(index),获取指定下标位置上对应的字符,并返回char类型
System.out.println("下标索引位置3上的字符是:"+s1.charAt(3));

//indexOf("字符串"),获取指定字符串在原字符串中的下标位置,如果不包含该字符串则返回-1
System.out.println("字符串的索引位置是:"+s1.indexOf("cn2"));

//lastIndexOf("字符串"),与indexOf()方法类似,区别是该方法是从后往前找,找到指定字符最后出现的位置
System.out.println("指定字符的索引为:"+s1.lastIndexOf("c"));

//length(),获取字符串的长度
System.out.println("字符串的长度是:"+s1.length());

}

}

 

  5. 拼接、替换、截取、分割、去空格等方法

  String字符串中提供了拼接、替换、截取、分割等方法,这几个方法如下:

  ● concat():将某个字符串连接到该字符串的结尾,并返回拼接后的字符串,相当于s1 = s1 + "world";

  ● join():用指定的字符串连接字符串数组;

  ● replace():将字符串中指定的字符串替换成指定的字符串;

  ● replaceAll():利用正则表达式,将字符串中指定的字符串替换成指定的字符串;

  ● substring(start,end):字符串截取,从指定的下标索引开始和结束,范围是左闭右开,注意索引是从0开始;

  ● substring(index):字符串截取,从指定的索引下标开始一直截取到字符串的最后;

  ● split():字符串切割,按照指定的字符串对原字符串进行切割;

  ● trim():不改变原有字符串内容,只是去除字符串首尾的空白字符,包括空格、\t、\r、\n。

public class Demo07 {

public static void main(String[] args) {
//用指定的字符串连接字符串数组
String[] arr = {"A", "B", "C"};
String str = String.join("***", arr); // "A***B***C"
System.out.println("新的字符串str="+str);

String s1 = "hello,SB";

//将字符串与指定的字符串进行拼接,相当于s1 = s1 + "world";
s1 = s1.concat("world");
System.out.println("新的字符串="+s1);

//字符串替换:将字符串中指定的字符串替换成指定的字符串
s1 = s1.replace("SB", "**");
System.out.println("新的字符串="+s1);

String s2 = "A,,B;C ,D";
//利用正则表达式,将字符串中指定的字符串替换成指定的字符串;
//通过正则表达式,把匹配的子串统一替换为","
s2 = s2.replaceAll("[\\,\\;\\s]+", ","); // "A,B,C,D"
System.out.println("新的字符串s2="+s2);

//字符串截取,从指定的下标开始和结束,范围是左闭右开
s1 = s1.substring(0, 5);
System.out.println("新的字符串="+s1);

//字符串截取,从指定的下标开始一直截取到字符串的最后。
//注意:StringIndexOutOfBoundsException
s1 = s1.substring(3);
System.out.println("新的字符串="+s1);

//字符串切割,按照指定的字符串对原字符串进行切割
String s2 = "zhangsan-lisi-wangwu";
//利用指定的分隔符进行分割
String[] s = s2.split("-");
System.out.println(Arrays.toString(s));

//去除字符串前后的空格
String s3 = " 你好, 哈哈 ";
s3 = s3.trim();
System.out.println("新的字符串s3="+s3);
}

}

 

  6. 大小写转换的方法

  String字符串中提供了将字符串转为小写、大写等方法,这几个方法如下:

  ● toUpperCase():将字符串中的字母都变成大写;

  ● toLowerCase():将字符串中的字母都变成小写。

public class Demo08 {

public static void main(String[] args) {
String s1 = "abcADC你好123";

//将字符串中的字母变成大写
System.out.println("转换后新的字符串="+s1.toUpperCase());

//将字符串中的字母变成小写
System.out.println("转换后新的字符串="+s1.toLowerCase());
}

}

 

  字符串转数组的方法

  String字符串中提供了将字符串转为字节、字符数组的方法,这几个方法如下:

  ● getBytes():将字符串转变成字节数组;

  ● toCharArray():将字符串变成字符数组。

public class Demo08 {

public static void main(String[] args) {
String s1 = "abcd你好";

//将字符串转变成字节数组
byte[] b = s1.getBytes();
System.out.println(Arrays.toString(b));

//将字符串变成字符数组
char[] c = s1.toCharArray();
System.out.println(Arrays.toString(c));
}

}

 

  其他类型转字符串的方式

  我们可以利用如下几种方式将其他类型转为String字符串:

  ● 利用"+"号拼接:通过拼接得到一个新的字符串对象;

  ● valueOf()方法:将其他的类型的数据转换成String类型;

  ● 构造方法:也可以使用字符串对应的构造方法,将字节、字符数组类型转为字符串对象,效率较低。

public class Demo08 {

public static void main(String[] args) {
//其他类型转字符串的方式
int i = 10;

//方式1:利用+号进行转换
String s1 = i+"";
System.out.println("整形转字符串s1="+s1);

//方式2:将其他的类型的数据转换成String类型
String s2 = String.valueOf(i);
System.out.println("整形转字符串s2="+s2);

//方式3:将字节数组转为字符串
byte[] nums= {97, 98, 99, 100};
String s3=new String(nums);
System.out.println("整形转字符串s3="+s3);
}

}

 

  9. 格式化字符串的方法

  除了以上这些方法之外,String还提供了几个可以用于格式化字符串的方法,如下:

  ● format():可以将字符串进行格式化操作。

public class Demo09 {

public static void main(String[] args) {
//实例方法:String对象.format()
//%d、%s、%.2f都是占位符
String s = "恭喜你,%s, 你的得分是:%d!";
System.out.println(s.formatted("壹壹哥", 99));

//静态方法:String类.format()
System.out.println(String.format("恭喜你,%s, 你的成绩是:%.2f!", "一一哥2", 46.5));
}

}

 

  在上面的案例中,涉及到了几个占位符,主要是配合参数进行格式化。当使用占位符时,就需要参数类型要和占位符要求的一致。常用的占位符含义如下:

  ● %s:表示字符串;

  ● %d:表示整数;

  ● %x:表示十六进制整数;

  ● %f:表示浮点数。

  另外占位符还可以带格式,例如%.2f是表示显示两位小数。如果你不确定到底该用哪个占位符,可以选择使用%s,因为%s可以显示任何数据类型。

  以上这些方法,就是String字符串中的一些常用方法,当然并不是全部的方法。

相关文章

热门视频

开班信息

  • Unity游戏开发班--------------------

    07.13抢座

  • 网络安全培训班--------------------

    06.15抢座

  • 大数据培训班--------------------

    06.29抢座

  • 软件测试培训班--------------------

    06.15抢座

  • UI交互设计培训--------------------

    06.29抢座

  • 物联网培训班--------------------

    06.29抢座

  • Java培训班--------------------

    06.15抢座

  • 云计算培训班--------------------

    06.29抢座

  • Python培训班--------------------

    06.29抢座

  • HTML5大前端班--------------------

    06.15抢座

  • 北京总部地址:北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术学院广场服务楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 深圳校区地址:深圳市宝安区宝安大道5010号西部硅谷B座C区1层108
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 广州校区地址:广州市白云区永平街永泰学山塘学山文化创意谷A1栋六楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 郑州二七区校区地址:郑州市二七区航海中路60号海为科技园C区10层
    郑州高新区校区地址:郑州市高新区金梭路与银杏路交叉口教育科技产业园南门D座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 大连校区地址:辽宁省大连市高新园区爱贤街10号大连设计城A座901
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 武汉金融港校区地址:武汉市东新区光谷大道77号金融港B18栋三、四层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 成都校区地址:成都市高新区肖家河沿街138号肖家河大厦三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 杭州旺田校区:浙江省杭州市上城区九堡镇旺田书画城A座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 青岛校区地址:青岛市市北区龙城路31号卓越世纪中心4号楼5层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 重庆校区地址:重庆市九龙坡区科园一路3号渝高大厦9楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 长沙校区地址:湖南省长沙市岳麓区麓谷企业广场A2栋三单元306号
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 哈尔滨校区地址:哈尔滨市松北区世泽路689号 科技创新城4号楼405
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 南京校区地址:南京市建邺区应天大街780号弘辉产业园1栋2层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 太原校区地址:太原市小店区长治路230号能源互联网大厦6层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 沈阳校区地址:辽宁省沈阳市浑南区世纪路16号东大软件园B园B1座A201
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 合肥校区地址:合肥市包河区徽州大道396号东方广场B座12A
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 贵阳校区地址:贵阳市云岩区延安东路37号物资大厦老楼9楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、网络营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 济南校区地址:济南市历下区历山路36号齐鲁师范学院利宝产业大厦3F
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python人工智能+数据分析培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、网络安全培训、区块链培训、影视剪辑包装培训、游戏原画培训、全媒体运营培训
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 千锋教育服务号

    了解千锋动态
    关注千锋教育服务号

  • 千锋教育移动站

    扫一扫快速进入
    千锋移动端页面

  • 千锋互联服务号

    扫码匿名提建议
    直达CEO信箱