Tag: 字符串

比较字符串就好像它们是数字一样

我想知道是否有可能比较字符串就好像它们是数字一样。 比如有没有什么方法可以让”Cat” > “Dog”

string.length在java中无法正常工作

嗨,我有一个代码,检查字符串是否是回文。代码是这样的: package ProjeTarahi; import java.util.*; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; import java.lang.String; public class Main { public boolean CheckIsSymmetric(String s) { if (s.length()<=1) { return true; } if (s.charAt(0)==s.charAt(s.length()-1)) { String sub = s.substring(1,s.length()-2); return CheckIsSymmetric(sub); } else { return false; } } public static void main(String args[])throws […]

Java – 为什么我不能使用charAt()来查看char是否等于另一个?

我想看看我的字符串中的字符是否等于某个其他字符值,但我不知道字符串中的字符是什么,所以我使用了这个: if ( fieldNames.charAt(4) == “f” ) 但我得到错误: “Operator ‘==’ cannot be applied to ‘char’, ‘jav.lang.String'” 但是”g” == “h”似乎有效,我知道你可以使用’==’和char类型。 有没有其他方法正确地做到这一点? 谢谢!

使用Java将摩尔斯电码转换为英文文本

我最近有一项任务,将英语转换为摩尔斯电码,将莫尔斯电码转换为英语。 输入摩尔斯电码时,我的老师希望用1个空格分隔单个字母,用“|”分隔单词。 例如, – — | -… 是“成为”。 我能够让英语到莫尔斯完美地工作,但我对莫尔斯英语不知所措。 我不知道如何让for循环停在正确的位置并将其与数组中的一个代码匹配。 只是旁注,我的老师不喜欢Scanner,所以他使用自己的输入系统。 我熟悉他的方法,所以避免使用Scanner会很感激 public class Project1 { public static void main( String [] args ) { String morse[] = {“.-“,”-…”,”-.-.”,”-..”,”.”,”..-.”,”–.”,”….”,”..”,”.—“,”-.-“,”.-..”, “–“,”-.”,”—“,”.–.”,”–.-“,”.-.”,”…”,”-“,”..-“,”…-“,”.–“,”-..-“,”-.–“,”–..”, “|”,”.—“,”..—“,”…–“,”….-“,”…..”,”-….”,”–…”,”—..”,”—-.”,”—–“}; String alphabet = “ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890”; String inputType = new String(); inputType = Input.getString( “Is your phrase in Morse Code or English? Enter ‘morse’ for […]

平板电脑可以拨打电话 (电话)

我在清单中有权限: 检查电话是否正在使用的代码可能会为平板电脑等无法接听电话的设备启动安全例外。 所以,我用这个方法来检查设备是否可以使用TelephonyManager: private boolean doesUserHavePermission(){ PackageManager pm = getPackageManager(); final boolean deviceHasPhone = pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); return deviceHasPhone; } 在我实际检查是否收到呼叫的代码中,我输入了一个if语句来查看设备是否有电话: private PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int state, String incomingNumber) { if (doesUserHavePermission()) { //I ADDED THIS if (state == TelephonyManager.CALL_STATE_RINGING) { onPhoneCallInterrupt(); //Method I made that mutes audio for phone call […]

ClassCastException:ArrayList不能转换为String

我收到此错误: java.lang.ClassCastException:java.util.ArrayList无法强制转换为java.lang.String 这是代码: public static Listproduit_cart(ArrayList l) { Listre=new ArrayList(); Listl4=new ArrayList(); re=(List) l.get(0); for(int i=1;i<l.size();i++) { l4=new ArrayList(); for(int j=0;j<re.size();j++) { for(int k=0;k<((ArrayList)l.get(i)).size();k++) { l4.add(re.get(j) + " " + (String)((ArrayList)l.get(i)).get(k)); } } re=new ArrayList(); for(int m=0;m<l4.size();m++) { re.add(l4.get(m)); } } return re; } 问题出在这一行: l4.add(re.get(j)+” “+(String)((ArrayList)l.get(i)).get(k)); 我试着把它重写为: l4.add(re.get(j)+” “+((ArrayList)l.get(i)).get(k)); 但它不起作用。 我该怎么办 ?

缩短Java中已经很短的字符串

我正在寻找一种尽可能缩短已经很短的字符串的方法。 该字符串是主机名:端口组合,可能看起来像“ my-domain.se:2121 ”或“ 123.211.80.4:2122 ”。 我知道由于需要的开销和缺乏重复,常规压缩对于字符串的问题几乎是不可能的,但我知道如何做到这一点。 因为字母表限制为39个字符( [az] [0-9] – :。 ),所以每个字符可以容纳6位。 与ASCII相比,这可以减少高达25%的长度。 所以我的建议是这样的: 使用某种自定义编码将字符串编码为字节数组 将字节数组解码为UTF-8或ASCII字符串(这个字符串显然没有任何意义)。 然后反转该过程以获取原始字符串。 所以我的问题: 这可行吗? 有没有更好的办法? 怎么样?

正则表达式以分割key = value

我有一个像这样的字符串: KEY1=Value1, KE_Y2=[V@LUE2A, Value2B], Key3=, KEY4=V-AL.UE4, KEY5={Value5} 我需要将其拆分以获得具有键值对的Map。 []值应作为单个值传递( KE_Y2是键, [V@LUE2A, Value2B]是一个值)。 我应该用什么正则表达式正确分割它?

如何用正则表达式和Java计算文本中的音节

我有文本作为String ,需要计算每个单词的音节数。 我试图将所有文本拆分成单词数组,而不是单独处理每个单词。 我使用正则表达式。 但是音节的模式不能正常工作。 请建议如何更改它以计算正确的音节数。 我的初始代码。 public int getNumSyllables() { String[] words = getText().toLowerCase().split(“[a-zA-Z]+”); int count=0; List tokens = new ArrayList(); for(String word: words){ tokens = Arrays.asList(word.split(“[bcdfghjklmnpqrstvwxyz]*[aeiou]+[bcdfghjklmnpqrstvwxyz]*”)); count+= tokens.size(); } return count; }

字符串池与concat一起使用时的行为有所不同?

String s1 = “Hello”.concat(“World”); String s3 = new String(“HelloWorld”); //Line-2 String s2 = s1.intern(); System.out.println(s1 == s2); //false System.out.println(s1 == s3); //false System.out.println(s2 == s3); //false 如果我删除了Line-2并比较了s1 == s2,它将返回true。 谁能解释一下Line-2之后字符串池中到底发生了什么? 什么是在堆中的每一行和常量池中发生的? 根据我的理解,s1将在常量池中创建“HelloWorld”。 但是仍然s1 == s2是假的?