精华内容
下载资源
问答
  • 这个是去年抽空学习java的时候写的一段程序,功能就是从指定的文本文件中搜索指定的字符串,返回搜索到的每一行和所在位置,最后输出找到次数。代码如下:import java.io.*;public class search{public static void ...

    这个是去年抽空学习java的时候写的一段程序,功能就是从指定的文本文件中搜索指定的字符串,返回搜索到的每一行和所在位置,最后输出找到次数。

    78bd944590b35ac57169a34132efd33a.gif

    代码如下:

    import java.io.*;

    public class search

    {

    public static void main(String[] args) throws IOException

    {

    FileReaderfr = null;

    BufferedReader br = null;

    inti= -1;//列号

    intli= -1;//字符串在行的最后位置

    intline= 1;//行号

    Strings = "";//搜索字符串

    Stringlinec = "";//当前行内容

    inttimes=0;//搜索到的次数

    if (args.length < 1)

    {

    System.out.println("Please put the filepath to read!");

    System.exit(0);

    }

    if (args.length < 2)

    {

    System.out.println("Please put the char to search!");

    System.exit(0);

    }

    fr= new FileReader(args[0]);

    br = new BufferedReader(fr);

    s = args[1];

    while((linec = br.readLine()) != null)

    {

    li=linec.lastIndexOf(s);

    for(i=-1;i<=li;i=linec.indexOf(s,i+1))

    {

    if(i>-1)

    {

    System.out.println("line:"+line+"char:"+i);

    System.out.println(""+linec);

    times++;

    }

    if(i==li)

    {

    break;

    }

    }

    line++;

    }

    if(times<1)

    {

    System.out.println("No such string found!"+line);

    }

    else

    {

    System.out.println("The String \"" + s + "\" was found " + times + " times");

    }

    br.close();

    fr.close();

    }

    }

    测试方法(windows下,需安装java环境):

    //1.将代码保存在一个文本文件里,并保存为search.java

    //2.到命令行,找到文件所在目录

    //3.输入

    javac search.java

    //,等待编译完成

    //4.随便找一个测试用文本文件,放入同级目录(方便测试),假设为test.txt

    //5.输入

    java search test.txt 我的

    //"我的"为要查找的字符串

    //6.程序返回查找结果

    另外,本程序没有在编码上做兼容,仅仅是一个简单的测试。

    展开全文
  • java 截取字符串

    2013-12-25 17:19:59
    int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcfar1bzvb";...a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置

    int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1

    eg:String str="a2dfcfar1bzvb"; 
    System.out.println(str.indexOf(97,2)); 

    看这个例子,输出:6 
    a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置,找不到就输出-1!(java中位置第一个从0开始)

    String.indexOf函数用法小结

    1.>  String input1 = null;
     String>  public void main(String args[]){ 
     ip = "126.168.1.1";
     i =>  input1 = ip.substring(0,i);
     input2 = ip.substring(i+1, x);
     
     System.out.println("the  input1 is "+input1);
     System.out.println("the input2 is "+input2);
                                      }
    }
    结果是
    the  input1 is 126
    the input2 is 168
    展开全文
  • 找到${,从${中的$所在索引位置向后找第一个}* 3.在${和其后第一个}的字符串间进行探测,如果存在另外的{,有几个则往后推几个}* 4.在第一个}和推后的}之间进行探测,如果存在{,有几个把最后的}向后推几个,重复此步...

    从字符串中解析出 ${****},其中{}中间可能还有大括号。

    /*算法1: * 1.寻找${,没找到,直接返回空列表

    * 2.找到${,从${中的$所在索引位置向后找第一个}

    * 3.在${和其后第一个}的字符串间进行探测,如果存在另外的{,有几个则往后推几个}

    * 4.在第一个}和推后的}之间进行探测,如果存在{,有几个把最后的}向后推几个,重复此步,直到中间没有{

    * 5.此时${和推后的}即为一个合法的公式区域段

    */

    /*算法2:

    * 1.按${将字符串分块

    * 2.在每个块中执行如下逻辑:把${标记为2,单独的{标记为1,}标记为-1。依次标记

    * 3.在每块中按照索引顺序从左向右加,如果标记值之和为1,说明${}是闭合合法的。处理下一个块

    */

    /**

    * 获取字符串中匹配的宏公式(不支持宏公式嵌套,如${ ${}}形式是不合法的,将忽略左侧的${)

    * @param str待匹配字符串

    * @return{@link ExressionRange}列表

    */

    public static List match$Exprs(String str){

    /*算法:

    * 1.按${将字符串分块

    * 2.在每个块中执行如下逻辑:把${标记为2,单独的{标记为1,}标记为-1。依次标记

    * 3.在每块中按照索引顺序从左向右加,如果标记值之和为1,说明${}是闭合合法的。处理下一个块

    */

    List ranges = new ArrayList();

    if(StringUtils.isEmpty(str)) return ranges;

    int offset = 0;

    int start = str.indexOf("${",offset);

    if(start == -1){

    return ranges;

    }

    List indexMap = new ArrayList();

    indexMap.add(new IndexObject(start, 2));

    offset = start + 2;

    while((start = str.indexOf("${", offset)) != -1){

    indexMap.add(new IndexObject(start, 2));

    offset = start + 2;

    }

    for(int i=0,size = indexMap.size();i

    int left = indexMap.get(i).index;

    int right = i == size-1 ? str.length() : indexMap.get(i+1).index;

    int offset2 = left + 2,offset3 = left + 2;

    int lk,rk;

    while((lk = str.indexOf("{",offset2)) < right && lk != -1){

    indexMap.add(new IndexObject(lk, 1));

    offset2 = lk + 1;

    }

    while((rk = str.indexOf("}",offset3)) < right && rk != -1){

    indexMap.add(new IndexObject(rk, -1));

    offset3 = rk + 1;

    }

    }

    return analysisExpressionRanges(ranges,indexMap,str);

    }

    /**

    * 生成ExpressRange列表

    * @param ranges待输出的ExpressRange列表

    * @param indexMap索引标志小对象列表

    * @param originalStr原始字符串

    * @return 解析后的ExpressRange列表

    */

    private static List analysisExpressionRanges(List ranges,List indexMap,String originalStr){

    Collections.sort(indexMap);

    int sum = 0,current$L = -1;

    for(IndexObject idx:indexMap){

    //每块的第一个标志必定是${

    if(idx.ratio == 2){

    current$L = idx.index;

    }

    sum += idx.ratio;

    //累加和 = 1 并且本块尚未处理完成

    if(sum == 1 && current$L !=-1){

    ranges.add(new ExpressionRange(current$L, idx.index + 1, originalStr.substring(current$L, idx.index + 1)));

    sum = 0;//清空累加只

    current$L = -1;//标记本块处理完成,防止 出现 2+1-1-1 + 1-1 被误记的情况

    }

    }

    return ranges;

    }

    /**

    * 索引标志小对象

    * @author wangtengfei

    */

    private static class IndexObject implements Comparable{

    int index;//当前标志在原字符串中的索引

    int ratio;//系数

    IndexObject(int index,int ratio){

    this.index = index;

    this.ratio = ratio;

    }

    public int compareTo(IndexObject o) {

    return index - o.index;

    }

    }

    展开全文
  • public class Lianxi{  public static void main(String[] args){  String str="像勇士这样的球队,只有防守一...写代码找出关键字“球队”,“机会”所在字符串str的索引位置,找出字符串中第二个“勇士...
    public class Lianxi{
    
      public static void main(String[] args){
    
        String str="像勇士这样的球队,只有防守一松懈,他们才能抓住机会,打完了三场,爵士还是没找到应对勇士的办法";
    
    
                //1.写代码找出关键字“球队”,“机会”所在字符串str的索引位置,找出字符串中第二个“勇士”的位置,并输出在控制台上
                int i1=str.indexof("球队");
                int i2=str.indexof("机会");
                int i3=str.lastIndexof("勇士");
                Syetem.out.println(i1);
                Syetem.out.println(i2);
                Syetem.out.println(i3);
    
    
                //2.定义int型变量m,取值为第一题中所有索引值的和
                int m=i1 +i2 +i3;    
    
    
                //3.在控制台上输出m作为char型时显示的内容
                System.out.println((char)m);
    
    
    
                //4.写代码实现将str字符串用","分割成数组, 并输出索引值为4的值
                System.out.println(str.split(",")[4]);
    
    
    
                //5.写代码实现将str字符串中"爵士"用"勇士"代替, "勇士"用"爵士"代替, 并将结果输出到控制台上(禁用replace方法)
                String[] newstr=str.split("");
                String temp ="";
                for(int i=0;i<newstr.length;i++){
                    if("爵".equals(newstr[i])){
                        newstr[i] ="勇";
                    }else if("勇".equals(newstr[i])){
                        newstr[i] ="爵";
                    }
                    temp +=newstr[i];
                }
                System.out.println(temp);
    
    
    
                //6.编写代码从str字符串中取一部分在控制台上打印这样一句话: 勇士抓住机会,找到应对办法
                int a=str.indexof("勇士");
                System.out.print(str.substring(a, a+2));
                int b=str.indexof("抓住机会");
                System.out.print(str.substring(b, b+4));
                int c=str.indexof("找到应对");
                System.out.print(str.substring(c, c+4));
                int d=str.indexof("办法");
                System.out.print(str.substring(d, d+2));
    
    
    
    
    
                //7.写一段代码, 可以取出任意qq邮箱地址中的qq号码
                String qqemail = "12345678@qq.com";
                System.out.println(qqemail.substring(0, qqemail.indexof("@")));
                
    
                String[] a= qqemail.split("@");
                System.out.println(a[0]);
     
    
         
      }
    }
    
                                                                                                                             
     1 public class Lianxi{
     2 
     3   public static void main(String[] args){
     4 
     5        //1.使用for和if打印一个空心正方形
     6         int n= 5;
     7         for(int i=0; i<n; i++){
     8             for(int j=0; j<n; j++){
     9                 if(i==0 || i==4){
    10                     System.out.print("* ");
    11                 }else{
    12                     if(j==0 || j==4){
    13                         System.out.print("* ");
    14                     }else{
    15                         System.out.print(" ");
    16                     }
    17                 }   
    18             }
    19             System.out.println();
    20         }
    21 
    22 
    23 
    24        //2.使用for循环打印一个菱形
    25                 int n=4;
    26         for(int i=0; i<n; i++){
    27             for(int j=0; j<n-i-1; j++){
    28                 System.out.print(" ");
    29             }
    30             for(int k=0; k<2*i+1; k++){
    31                 System.out.print("*");
    32             }
    33             System.out.println();
    34         }
    35         for(int a=0; a<n-1;a++){
    36             for(int b=0; b<a+1; b++){
    37                 System.out.print(" ");
    38             }
    39             for(int c=0; c<5-(2*a); c++){
    40                 System.out.print("*");
    41             }
    42             System.out.println();
    43         }
    44 
    45   
    46   }
    47 }

     

    转载于:https://www.cnblogs.com/zym0m/p/7204819.html

    展开全文
  • int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcfar1bzvb";...a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置
  • 错误消息中提供的代码显示R认为问题所在位置 . 在原始代码中找到该行,并查找拼写错误 .Prophylactic measures to prevent you getting the error again避免语法错误的最好方法是编写时髦的代码 . 这样,当你输入...
  • 无分库分表 pom.xml增加配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter<...找到druid的包位置, 切换路径到包所在路径,执行命令 java cp d
  • 在String类中提供了indexOf和lastIndexOf方法用于查找字符或字符串,返回值是查找的字符或字符串所在位置,-1表示没有找到。这两方法有多个重载方法。 *int indexOf(int ch):从前往后搜索字符ch,返回第一次找到的...
  • int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置....看这个例子,输出:6a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置,找不到就输出-1!(java...
  • indexOf函数int indexOf(int ch,intfromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置....看这个例子,输出:6a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置,找不到就输出...
  • JAVA 正则表达式

    热门讨论 2010-01-15 11:16:37
    //查找以 Java 开头,任意结尾的字符串 Pattern pattern = Pattern.compile("^Java.*"); Matcher matcher = pattern.matcher("Java 不是人"); boolean b= matcher.matches(); //当条件满足时,将返回 true,否则...
  • 一个Java面试题

    2011-12-23 00:02:04
    在一个兄弟的面试贴中看到这样一个面试题:写一个类,读一个txt文件,从中找到aliy这个词,并记录该字符串所在的行数和每一行中的位置。 第一反应:每次循环读一行字符串,然后用String.index方法就可以搞定了。 ...
  • java indexof方法使用

    2017-01-09 09:38:14
    int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcfar1bzvb";...a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位
  • JAVA中indexOf函数用法

    万次阅读 2014-12-18 09:26:30
    int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcfar1bzvb";...a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置,找不到
  • 1、int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 String str="a2dfcfar1bzvb";...a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置,找不到就输
  • 1, 写代码找出关键字"球队","机会"所在字符串str的索引位置, 找出字符串中第二个"勇士"的位置, 并输出在控制台上 2, 定义int型变量m, 取值为第一题中所有索引值的和 3, 在控制台上输出m作为char型时显示的内容 4...
  • Java indexOf()的两个用法

    千次阅读 2015-01-29 16:45:13
    int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcfar1bzvb";...a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位
  • JAVA中indexOf函数用法和subString()方法

    千次阅读 2014-08-15 17:08:32
    indexOf函数 int indexOf(int ch,intfromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcfar1bzvb";...a的ASCII为97,就从d开始找a找到了输出a所在字符串的确
  • 加载 trackerServers 字符串配置: String trackerServers = "10.0.11.101:22122,10.0.11.102:22122"; ClientGlobal.initByTrackers(trackerServers); 检查加载配置结果: System.out.println("ClientGlobal.config...
  • 使用javascript及java对Cookie的读写

    千次阅读 2007-08-13 16:14:00
    2):如果大于0,再看要查找的COOKIE名是否在取得的字符串中。3):如果在,取得该(COOKIE名+其长度+等号)对应的位置,作为起始位置;4):从该起始位置找到第一们“;”所在位置。5):取中间的内容,就是...
  • int indexOf(int ch,int fromIndex)函数

    千次阅读 2016-10-17 10:03:13
    int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置....看这个例子,输出:6a的ASCII为97,就从d开始找a找到了输出a所在字符串的确切位置,找不到就输出-1!(java
  • 通过IDEA进行class文件代码反编译

    千次阅读 2020-07-06 14:03:03
    JDK7的新特性switch语句的表达式可以为字符串,如何通过IEDA反编译来查看代码运行原理 如编写如下代码,然后点击下图按钮查看工程结构 2.在弹出的窗口中查看输出的class文件所在位置 3.然后复制文件路径在资源管理...
  • freemarker总结

    2015-01-04 14:22:05
    有一种特殊的字符串称为raw字符串,被认为是纯文本,其中的\和{等不具有特殊含义,该类字符串在引号前面加r,下面是一个例子: ${r"/${data}"year""}屏幕输出结果为:/${data}"year" 转义 含义 ...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

java找到字符串所在位置

java 订阅