C# Java语法对比

164 篇文章 14 订阅

 

                 

 C#java
stringstringString
类的定义类可以和文件名不同类必须和文件名相同
方法的定义公共方法首字母大写第一个首字母消息,其他大写
控制台输入Console.readline()只返回字符串

Scanner() sc = new Scanner();

int a = sc.nextInt();

string str = sc.next();

引用库using namespaceimport package
属性public string Name{get;set;}

private string _Name="";

public getName()

public setName()

ArrayList

没有泛型

list[i]

list.Count

可以是泛型,加<>指定类型,但必须是引用类型

ArrrayList<Integer>

ArrayList<String>

list.get(i)

list.size()

list.set(i,num)

访问权限默认private默认是包范围
访问父类成员base(基类)super(超类)
继承冒号:extends继承类,implements实现接口,接口继承用extends
重写父类方法输入override提示父类的方法直接拷贝过来方法签名即可,签名中不包含override字样
常量关键字constfinal
密封类或方法sealedfinal
代码块静态构造函数(功能类似静态代码块)静态代码块,构造代码块
重写方法public override就会提示选择输入即可直接输入方法名会提示输入即可
判断引用类型isinstanceof
运算符重写有,比如==比较字符串,重写为比较的值,所以在c#里面==和equals是相等的没有,比如==比较字符串,比较的是地址,但equals方法惊醒了重写,比较的是值,所以在java中比较尽量用equals
输入时选择tabenter
运行快捷键F5CTRL+ALT+F10
文档注释属性设置生成,输出,xml格式需要到出,html格式
substring方法第一个参数是startindex,第二个参数是长度第一个参数是startindex,第二个是endindex(不包含)
字符串转字节数组Encoding.UTF8.GetBytes()strObj.getBytes()
解决字符串不可变对象StringBuilderStringBuffer,StringBuilder都有,而且方法完全相同,只是StrinbBuffer是线程安全的类 ,一般用StringBuilder,效果更高
正则表达式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace GrammaDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //匹配
            string str0 = "abc123";
            Regex regex0 = new Regex("[a-z]+[\\d]+");
            Console.WriteLine(regex0.IsMatch(str0));

            //替换
            string str = "abc123def890";
            Regex regex = new Regex("[\\d]+");
            str = regex.Replace(str, "#");
            Console.WriteLine(str);

            //分割
            string str2 = "192.168.1.1";
            Regex regex2 = new Regex("[\\.]");
            var strs = regex2.Split(str2);


            Console.WriteLine(string.Join(" ",strs));

            Console.ReadLine();

        }
    }
}
 

package day0727_1;

public class RegexDemo {
    public static void main(String[] args) {
        String str="abc123frf890";
        //匹配
        boolean b =str.matches("[a-z]+[\\d]+[a-z]+[\\d]+");
        System.out.println(b);
        
        //替换
        str = str.replaceAll("[\\d]+", "#");
        System.out.println(str);
        
        //分割
        str="192.168.1.1";
        String[] strs = str.split("[\\.]");
        for (String string : strs) {
            System.out.println(string);
        }
        
    }
}
 

foreach

 foreach (var item in collection)
            {

            }

for (String string : strs) {
            System.out.println(string);
        }
时间转换

             DateTime dt1 = DateTime.Now;
            string str = dt1.ToString("yyyy年MM月dd日 HH:mm:ss");

            Console.WriteLine(str);

            var dt2 = DateTime.Parse("2020-1-1");
            Console.WriteLine(dt2);

            Console.ReadLine();

        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String str = sdf.format(date);
        
        System.out.println(str);
        
        Date dt=null;
        try {
            dt = sdf.parse(str);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(dt);
基本类型包装类没有包装类,直接用基本类型调用转换方法存在基本类型包装类,Integer Double Float Character,需要使用包装类来调用转换方法
进制字符串转换

Convert.ToInt32("10",2)二进制字符串转换成数字

Convert.ToString(10,2)数字转二进制字符串

Integer.parse("10",2),二进制字符串转换成数字

Integer.toString(t, 2);数字转换成二进制字符串

Array帮助类ArrayArrays
Array得ToString()没有,可以用string.join(" ",arr)打印所有得元素Arrays.toString(arr)
ICollection接口

ICollection 接口有Count Add Remove Contain等方法

ToArray方法是在Enumerable类中定义得IEnumerable得扩展方法

Collection接口有size,add(),remove(),contains.toArray等方法
字典Dictionary<k,v>HashMap<k,v>
方法声明异常

无法声明抛出异常

只能在方法中通过throw抛出异常

利用throws关键字声明抛出异常,并在方法种通过throw抛出异常
获取异常信息ex.Messageex.getMessage()
文件目录存在File Directory两个类只有File类
创建文件

File.Create()

File.CreateText()

File file = new File(filePath)

file.createNewFile();

创建目录Directory.CreateDirectioy

File file = new File(dirPath)

file.mkdirs()

获取父目录Directory.GetParent()

fileObj.getParent()

fileObj.getParentFile()

文件大小fileInfo.lengthfile.length()
文件名

fileInfo.Name

fileInfo.FullName

file.getName()

file.getAbsolutePath()

判断是否是文件或者目录

File.Exists

Directory.Exists

file.isFile()

file.isDirectory()

文本文件读写(默认编码GBK)

File.ReadAllText()

Fille.WriteAllText()

FileWrite ,FileReader
文本文件读写(可以指定编码表)

StreamWriter

StreamReader

OutputStreamWriter

InputStreamReader

字节读取文件

FileStream fs = File.OpenRead(str)

FileStream fs = File.OpenWrite(str)

FileInputStream fis = new FileInputStream(str)

FileOutputStream fos = new  FileOutputStream(str)

缓冲字节流BufferedStream 

BufferedInputStream

BufferedOutputStream

缓冲字符流

BufferedWriter

BufferedReader

string.formatstring str = string.Format("{0:x}", 20);String result = String.format("%x", 20);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值