博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#和java区别小整理
阅读量:5271 次
发布时间:2019-06-14

本文共 4869 字,大约阅读时间需要 16 分钟。

引言:

  刚开始学习C#,发现它和java很多语法都类似,但也有一些区别,下面整理的内容(区别java语法的)都是让我头疼了的地方,希望有和我一样从java转到C#的读者能减少走弯路,也希望有C#高手能多多指点小弟。

正文:

  嘿嘿,不罗嗦了,下面就是我遇到过的问题。

  1.写控制台程序时,有时窗口一闪而过,可以在Main()函数最后一行加上Console.ReadKey();读取键盘输入防止窗口立刻消失(和C++system("pause");类似)。

  2.关于二维数组的定义不同,比如定义一个5X4的二维数组,C#中是:(方法一)int[][] a=new int[5][];for(int i=0;i<4;i++){a[i]=new int[4];}  

    (方法二) int[,] a=new int[5,4];

  3.C#中的换行符是'\r\n'或者Environment.NewLine();(我都是用的前者,如果需要换平台使用程序则使用后者)。

  4.在winform程序中你如果想要点击一个按钮出现一个可以选择文件的对话框,那太好了,在点击按钮事件中添加OpenFileDialog ofd = new OpenFileDialog();ofd.ShowDialog();

    就可以了,获取该文件路径用ofd.FileName。

  5.事件入口标志就是右边属性栏下边属性页右边的闪电标志,点击它就好了。(请不要发笑,我当时就找了好久)。

  6.

    (1)如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");

    (2)如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");

    “.”和“|”都是转义字符,必须得加"\\";

    (3)如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可以用String.split("and|or");

  7.C#中把string当做char[]处理,如java中的charAt在C#中直接用Str[i]就可以了。(这个够方便,嘿嘿)

  8.C#中正则表达式要用到Regex,举例:Regex re=new Regex(“[0-9]”);re.isMatch(String str);

  9.遍历文件夹时C#中一般使用的都是传递地址,然后在判断它是文件还是文件夹,因为C#中文件的声明(FileInfo)和文件夹的声明(DirectoryInfo)不一样,

    而在java中则都是File。(下面的程序是我写的遍历某目录下this和word的次数,里面有遍历文件夹代码)

遍历文件夹
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace wordTimes {
public partial class Form1 : Form {
public Form1() {
InitializeComponent(); } private void button1_Click(object sender, EventArgs e) {
clear(); String[] fid = { "this", "word" }; findFile(textBox1.Text,fid); //textBox2.Text=calculate(textBox1.Text, fid)[0].ToString(); } //先找出目录下的所有txt文件 public void findFile(String path,String[] fid){
if(Directory.Exists(path)){
//遍历该目录下的所有文件 foreach(String filepath in Directory.GetFileSystemEntries(path)){
findFile(filepath,fid); } }else{
if(File.Exists(path)){
FileInfo f = new FileInfo(path); //如果文件以txt结尾,则扫描内容 if(f.Name.EndsWith(".txt")){
int[] times = findPara(path,fid); String str=path; if (times != null) {
str = str+ "\r\n" + fid[0] + ":" + times[0] + "\r\n" + fid[1] + ":" + times[1] + "\r\n"; } else str = str + "\r\n" + fid[0] + ":" + 0 + "\r\n" + fid[1] + ":" + 0 + "\r\n"; textBox2.Text = textBox2.Text + str; label2.Text = "提示:统计成功!!"; } } return; } } //把txt文件的每一行都提取出来处理 public int[] findPara(String path,String[] fid){
FileInfo f = new FileInfo(path); if(f.Length==0){
return null; } int[] mid=new int[fid.Length]; try {
FileStream fis=null; StreamReader br=null; try{
fis=new FileStream(path,FileMode.Open); br=new StreamReader(fis); String s = br.ReadLine(); //以行为单位进行处理 while(s!=null&&!s.Equals("")){
for (int i = 0; i < fid.Length; i++) {
mid[i]+=findTimes(s,fid[i]); } s=br.ReadLine(); } }finally{
if(br!=null) br.Close(); if(fis!=null) fis.Close(); } } catch (Exception ex) {
label2.Text = "提示:读文件出错!"; } return mid; } //查看一行字符中word和this出现的次数 public int findTimes(String str1,String str2){
int num=0; int pos=str1.IndexOf(str2, 0); while(pos!=-1){
num++; pos=str1.IndexOf(str2, pos+str2.Length); } return num; } //清理屏幕 public void clear() {
label2.Text = "提示:"; textBox2.Text = ""; } } }

 

  10.将图像灰度化就是获取每一个点的像素,然后R*0.299+G*0.587+B*0.114得到它的灰度像素,再把此灰度像素代会原图像即可。

图像灰度处理
private void button2_Click(object sender, EventArgs e)         {
//bm的声明System.Drawing.Bitmap bm; if (bm != null) {
Color c; int ret; for (int i = 0; i < bm.Width;i++) {
for (int j = 0; j < bm.Height; j++) {
c = bm.GetPixel(i,j); ret = (int)(c.R * 0.299 + c.G * 0.587 + c.B * 0.114); bm.SetPixel(i, j, Color.FromArgb(ret, ret, ret)); } } pictureBox2.Image = bm; } }

  11.C#中的Substring(起始位置,子字符串长度)而java中是subString(起始位置,终止位置)(哈哈,这个可是相当纠结区别,坚持看到最后的童鞋,这个就当做奖励了)。

 

尾声:

  我知道其实你也看出来了我是菜鸟,还有好多区别我都不知道,希望各位大大能多多指教,呵呵,不胜感激!

转载于:https://www.cnblogs.com/sunhao/archive/2011/12/27/2303230.html

你可能感兴趣的文章
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>
Mysql 数据库操作
查看>>
转:linux终端常用快捷键
查看>>
UVa 11059 最大乘积
查看>>
数组分割问题求两个子数组的和差值的小
查看>>
composer 报 zlib_decode(): data error
查看>>